gpt4 book ai didi

c# - InsertAllOnSubmit 只插入第一条数据记录

转载 作者:太空狗 更新时间:2023-10-29 22:29:25 24 4
gpt4 key购买 nike

今天,当我尝试导入多个数据记录时,我注意到我的导入服务中有一个奇怪的行为。

当我这样做时,所有数据记录都被导入并且自动递增值是正确的(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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com