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

标签 c# .net wpf postgresql linq2db

为了继续使用来自数据库的数据在应用程序中工作,我使用了 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/

相关文章:

c# - 追加和写入目录的访问权限——FileIOPermission 会产生不好的结果吗?

c# - 关于委托(delegate)的澄清

c# - 如何使用 MVVM Light 检测 TextBox 中的按键

c# - 在不关闭对话框的情况下设置 DialogResult

c# - 在 WPF 中处理 Key 的正确且独立于文化的方法是什么?

c# - 使将 CSV 字符串导入到类的列表中更容易

c# - 典型的 IoC 容器用法——向下传递数据

.net - 带有计数的NEST组

c# - 如何重写 TreeNodeCollection.Add(TreeNode)?

c# - 如何解决错误消息 : "Failed to map the path ' /'."