Linq使用DataContext

1 c# linq-to-sql

1)我想澄清对收藏品的一些疑问.

SampleDBDataContext PersonDB = new SampleDBDataContext("");
Table<Person> p=PersonDB.GetTable<Person>();
IEnumerable<Person> per = PersonDB.GetTable<Person>();
IQueryable<Person> qry = PersonDB.Persons.Select(c => c);
Run Code Online (Sandbox Code Playgroud)

使用之间有什么区别Table<Person>,IEnumerable<Person>,IQueryable<Person>.具体需要选择哪一个?

2)对于添加记录,我的IDE中没有出现Add()方法,(即)PersonDB.Persons.Add().这里有什么问题?

rec*_*ive 6

1.

  • IEnumerable<> 是一个适用于任何可以枚举或迭代其成员的集合的接口.

  • IQueryable<>是一个LINQ接口,适用于任何可以懒惰查询其成员的集合.(在访问其成员之前查询而不实现结果集)

  • Table<> 是一个我之前没有使用过的类,但"代表底层数据库中特定类型的表."

你选择哪一个取决于你的需求,但是IEnumerable<>最通用的,所以我会在我的类型声明中使用它,如果它足够的话.

2.

要插入一个人使用InsertOnSubmit():

Person person = new Person() { ... };
PersonDB.Persons.InsertOnSubmit(person);
PersonDB.SubmitChanges();
Run Code Online (Sandbox Code Playgroud)