C# InsertAllOnSubmit<;TSubEntity>;何时使用?
在LINQtoSQL中,我的理解是,当我想插入对象集合时,我将使用C# InsertAllOnSubmit<;TSubEntity>;何时使用?,c#,linq,linq-to-sql,C#,Linq,Linq To Sql,在LINQtoSQL中,我的理解是,当我想插入对象集合时,我将使用InsertAllOnSubmit。我不明白的是,我什么时候需要使用InsertAllOnSubmit,而不是只使用InsertOnSubmit 与泛型类型参数或有什么区别 根据LINQ的定义 public void InsertAllOnSubmit<TSubEntity>(IEnumerable<TSubEntity> entities) where TSubEntity : TEntity;
InsertAllOnSubmit
。我不明白的是,我什么时候需要使用InsertAllOnSubmit
,而不是只使用InsertOnSubmit
与泛型类型参数或有什么区别
根据LINQ的定义
public void InsertAllOnSubmit<TSubEntity>(IEnumerable<TSubEntity> entities)
where TSubEntity : TEntity;
条目是一个列表
我应该如何正确使用这个?哪个版本更好?这是一种方便的方法,允许您在一次调用中插入多个实体。这将为您保存
foreach
循环。它不会改变访问数据库的方式,但根据反编译的代码,它的CPU效率可能会稍低一些(影响很小)
存在泛型类型参数,以便在实体处于继承关系中时可以传递派生类型。从C#协方差支持开始,这就不再需要了
在什么情况下应该使用哪一种
如果有实体列表,请使用列表版本。否则,请使用单项目版本。不要指定泛型类型参数。它从来都不是必需的,只是把代码弄得乱七八糟
没有任何功能上的区别。如果它能编译,它就能工作。只需省去类型参数,编译器就会适当地填充它。当列表中已有多个实体时,使用
InsertAllOnSubmit
更方便
db.SlickTableEntries.InsertAllOnSubmit<SlickTableEntry>(entries);
db.SubmitChanges();
db.SlickTableEntries.InsertAllOnSubmit(entries);
db.SubmitChanges();