- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
今天,当我尝试导入多个数据记录时,我注意到我的导入服务中有一个奇怪的行为。
当我这样做时,所有数据记录都被导入并且自动递增值是正确的(see screenshot):
public void Create(List<Property> properties)
{
foreach (Property prop in properties) {
dbc.Property.InsertOnSubmit(prop);
dbc.SubmitChanges();
}
}
当我这样尝试时,只有第一个数据记录得到一个正确的自动递增值(see screenshot):
foreach (Property prop in properties) {
dbc.Property.InsertOnSubmit(prop);
}
dbc.SubmitChanges();
这里也一样:
dbc.Property.InsertAllOnSubmit(properties);
dbc.SubmitChanges();
有人知道为什么会这样吗?根据我的理解,这三个变体应该都导入所有数据记录,但是缺少自增值表明不是这样。
[编辑] 添加了两个屏幕截图。
最佳答案
我遇到了同样的问题,结果发现问题是由于重写了映射类上的 Equals。我的 Equals 方法只比较作为标识字段的主键字段。当然,当对象是新的时,所有标识都是 0。所以当调用 InsertAllOnSubmit 时,它认为所有新对象都是相同的,并且基本上忽略了第一个以外的所有对象。
关于c# - InsertAllOnSubmit 只插入第一条数据记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1074611/
今天,当我尝试导入多个数据记录时,我注意到我的导入服务中有一个奇怪的行为。 当我这样做时,所有数据记录都被导入并且自动递增值是正确的(see screenshot): public void Crea
如果不存在我正在做的记录,则插入: using(MyDataContext db = new MyDataContext()) { for(int i=0 i item.name == Ite
我试图理解这两者之间的区别,并且真的需要一个简单的解释性示例。 提前致谢.. 最佳答案 有一个 good Q&A关于这个在 MSDN 论坛上。最有趣的一点: InsertAllOnSubmit() s
我们知道 Linq-To-Sql InsertAllOnSubmit 在性能方面很糟糕,但是使用 SqlBulkCopy 进行批量插入需要一些编码。有没有人发现在 InsertAllOnSubmit
我可以通过再次调用 InsertAllOnSubmit() 恢复从 DeleteAllOnSubmit() 中删除的对象吗?还是相反? 最佳答案 您可以通过调用检索原始值: GetOriginalEn
假设我有: using (SomeDataContext db = new SomeDataContext()) { foreach(Item i in Items) {
两者在性能上是否有很大差异,例如我有这两个代码片段: public void Insert(IEnumerable geofences) { var insertGeofences = new
我是一名优秀的程序员,十分优秀!