C#→关于System.Data.Linq下的Table<TEntity> 泛型类 的问题
Table<TEntity>表示表格记录,它是一个泛型集合类,它的元素就是表格实体对象。它提供一组方法,对元素进行添加删除操作,并可以通过DataContext将这些操作保存到数据库。
表还是前面的那张表,在项目中添加了一个LINQ to SQL类。重点是InsertOnSubmit、DeleteOnSubmit等方法。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace LINQ_to_SQL_Table
{
/// <summary>
/// 操作单一表格的Table<TEntity>类
/// </summary>
class Program
{
static void Main(string[] args)
{
//1.a.Attach附加实体
DataClasses1DataContext dc1 = new DataClasses1DataContext();
tb_GuestInfo guset = new tb_GuestInfo() { Id=1, Name = "DebugLZQ", Age = 35, Tel = "138****8888" };
dc1.tb_GuestInfo.Attach(guset);//这样的Attach仅仅附加实体,数据库没有更新
dc1.SubmitChanges();
//显示附加成功
foreach (var g in dc1.tb_GuestInfo)
{
Console.WriteLine("{0} {1} {2} {3}", g.Id, g.Name, g.Age, g.Tel);
}
Console.WriteLine("---------");
//显示数据库没有更新
DataClasses1DataContext dc2 = new DataClasses1DataContext();
foreach (var g in dc2.tb_GuestInfo)
{
Console.WriteLine("{0} {1} {2} {3}", g.Id, g.Name, g.Age, g.Tel);
}
Console.WriteLine("------------------------");
Console.ReadKey();
//2.InsertOnSubmit
dc2.tb_GuestInfo.InsertOnSubmit(guset);
dc2.SubmitChanges();
foreach (var g in dc2.tb_GuestInfo)
{
Console.WriteLine("{0} {1} {2} {3}", g.Id, g.Name, g.Age, g.Tel);
}
Console.WriteLine("------------------------");
Console.ReadKey();
//2b.InsertAllOnSubmit 插入集合
List<tb_GuestInfo> lst = new List<tb_GuestInfo>()
{
new tb_GuestInfo(){ Name="AA", Age=25,Tel="133****3333"},
new tb_GuestInfo(){ Name="BB", Age=25,Tel="135****5555"}
};
dc2.tb_GuestInfo.InsertAllOnSubmit(lst);
dc2.SubmitChanges();
foreach (var g in dc2.tb_GuestInfo)
{
Console.WriteLine("{0} {1} {2} {3}", g.Id, g.Name, g.Age, g.Tel);
}
Console.WriteLine("------------------------");
Console.ReadKey();
//
//3.DeleteOnSubmit
tb_GuestInfo entity = (from g in dc2.tb_GuestInfo
where g.Name == "AA"
select g).Single();
dc2.tb_GuestInfo.DeleteOnSubmit(entity);//
dc2.SubmitChanges();
foreach (var g in dc2.tb_GuestInfo)
{
Console.WriteLine("{0} {1} {2} {3}", g.Id, g.Name, g.Age, g.Tel);
}
Console.WriteLine("------------------------");
Console.ReadKey();
//3b.DeleteAllOnSubmit
IEnumerable<tb_GuestInfo> entitys = from g in dc2.tb_GuestInfo
where g.Name == "AA" || g.Name == "BB"
select g;
dc2.tb_GuestInfo.DeleteAllOnSubmit(entitys);
dc2.SubmitChanges();
foreach (var g in dc2.tb_GuestInfo)
{
Console.WriteLine("{0} {1} {2} {3}", g.Id, g.Name, g.Age, g.Tel);
}
Console.WriteLine("------------------------");
Console.ReadKey();
}
}
}
程序运行结果如下:
2013-08-14
2013-08-14
用你的问题来说就是数据库表的引用,在定义这个Tentity类的时候,类内部需要把表中的字段也定义清楚,字段也同样是需要映射的,类中字段作为一个成员变量比如[Column(Storage="_LogID", DbType="UniqueIdentifier NOT NULL", IsPrimaryKey=true)]public System.Guid LogID { 。。。 }