为了继续使用来自数据库的数据在应用程序中工作,我使用了 linq2db。
在数据库中插入一个对象,如果该对象有 ID,则期望插入 WITH ID,如果没有标识,则为该对象在数据库中创建新 ID。
但目前,此方法在两种情况下都插入了新的 ID。
我可以举个例子:
using(var db = new EIDB())
{
Customer.Id=20;
Customer.Name="Greg";
db.Insert(Customer);
}
插入后,我们在数据库中有这个名为“Greg”且 ID=1 的客户...
***有没有办法做类似的事情,但插入之前设置的相同 ID(在我们的示例中 = 20)?
PS:如果我正在使用 NpgsqlCommand,并插入相同的数据,则插入 ID=20...
最佳答案
我找到了一个解决方案。如果我只使用 db.Insert(Customer) 正在使用新 ID 在数据库中创建一个新实例。但是,如果我这样做:
db.Customers
.Value(p => p.Name, Customer.Name)
.Value(p => p.Id, Customer.Id)
.Insert();
这是在数据库中插入具有之前设置的 id 的实例。
祝那些有同样问题的人好运:)
关于c# - 具有身份的 Linq2db 插入未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48790515/