InsertAllOnSubmit<TSubEntity> 什么时候使用?
InsertAllOnSubmit<TSubEntity> when to use?
在 LINQ to SQL 中,我的理解是,当我想插入一个对象集合时,我将使用 InsertAllOnSubmit
。我不明白的是我什么时候需要使用 InsertAllOnSubmit<T>
而不是只使用 InsertOnSubmit
?
关于泛型类型参数的区别是什么。
根据 LINQ 定义,
public void InsertAllOnSubmit<TSubEntity>(IEnumerable<TSubEntity> entities)
where TSubEntity : TEntity;
这样使用:
db.SlickTableEntries.InsertAllOnSubmit<SlickTableEntry>(entries);
db.SubmitChanges();
对比像这样使用它:
db.SlickTableEntries.InsertAllOnSubmit(entries);
db.SubmitChanges();
条目是 List<SlickTableEntry>
。
我应该如何正确使用它?哪个版本更好?
这是一种方便的方法,允许您在一次调用中插入多个实体。这为您节省了 foreach
循环。它不会改变访问数据库的方式,但根据反编译代码(微小影响),它可能 CPU 效率稍低。
泛型类型参数的存在使您可以在实体处于继承关系时传递派生类型。从 C# 协方差支持开始,不再需要它。
Which one should be used in what situation?
如果您有实体列表,请使用列表版本。否则,请使用单项版本。不要指定泛型类型参数。它从来都不是必需的,只会使代码混乱。
在功能上没有任何区别。如果编译成功。只需省略类型参数,编译器就会适当地填充它。
在 LINQ to SQL 中,我的理解是,当我想插入一个对象集合时,我将使用 InsertAllOnSubmit
。我不明白的是我什么时候需要使用 InsertAllOnSubmit<T>
而不是只使用 InsertOnSubmit
?
关于泛型类型参数的区别是什么。
根据 LINQ 定义,
public void InsertAllOnSubmit<TSubEntity>(IEnumerable<TSubEntity> entities)
where TSubEntity : TEntity;
这样使用:
db.SlickTableEntries.InsertAllOnSubmit<SlickTableEntry>(entries);
db.SubmitChanges();
对比像这样使用它:
db.SlickTableEntries.InsertAllOnSubmit(entries);
db.SubmitChanges();
条目是 List<SlickTableEntry>
。
我应该如何正确使用它?哪个版本更好?
这是一种方便的方法,允许您在一次调用中插入多个实体。这为您节省了 foreach
循环。它不会改变访问数据库的方式,但根据反编译代码(微小影响),它可能 CPU 效率稍低。
泛型类型参数的存在使您可以在实体处于继承关系时传递派生类型。从 C# 协方差支持开始,不再需要它。
Which one should be used in what situation?
如果您有实体列表,请使用列表版本。否则,请使用单项版本。不要指定泛型类型参数。它从来都不是必需的,只会使代码混乱。
在功能上没有任何区别。如果编译成功。只需省略类型参数,编译器就会适当地填充它。