具有身份的 Linq2db 插入未按预期工作

BAn*_*rei 4 .net c# postgresql wpf linq2db

为了继续使用数据库中的数据在应用程序中工作,我使用 linq2db。

如果该对象有 ID,则在 DB 中插入对象时,预计会插入 ID;如果没有标识,则在 DB 中为此对象创建新 ID。
但目前,此方法在这两种情况下都会插入新的 id。

我可以给你举个例子:

using(var db = new EIDB())
{
  Customer.Id=20;
  Customer.Name="Greg";
  db.Insert(Customer);
}
Run Code Online (Sandbox Code Playgroud)

插入之后,我们在数据库中就有了这个名为“Greg”且 ID=1 的客户...

***有没有办法做类似的事情,但要插入之前设置的相同ID(在我们的示例中= 20)?

PS:如果我使用 NpgsqlCommand 并插入相同的数据,则插入 ID=20...

BAn*_*rei 5

我找到了解决方案。如果我只使用 db.Insert(Customer) 则使用新 ID 在数据库中创建一个新实例。但是,如果我这样做:

db.Customers
  .Value(p => p.Name, Customer.Name)
  .Value(p => p.Id, Customer.Id)
  .Insert();
Run Code Online (Sandbox Code Playgroud)

这是在数据库中插入之前设置的 id 的实例。

祝那些遇到同样问题的人好运:)