0

我以前从未使用过它,现在我需要通过 inq 对数据库执行 crud 操作

我有 3 个集合,我想在数据库中推送 3 个不同的表。

所有三个集合都属于一个界面,在那里展示一些东西

我想知道应该如何执行更新和添加新操作。就像在 simele sqlcommand like 语句中一样,我正在使用具有更新存储过程的单个保存方法,并检查它是添加新项目还是正在编辑,因此如果创建了新条目,则第一个表返回我分配给的主表其他集合之一的属性并以相同的方式推送它。

我关心的是如何在这里做同样的事情,如果一个新条目被推送到数据库,主键应该 b 返回,我可以映射到其他集合的属性?

4

1 回答 1

1

从评论中,您正在使用 LINQ-to-SQL;在这种情况下,ORM会为您处理这个问题。例如:

var cust = new Customer();
ctx.Customers.InsertOnSubmit(cust);
cust.Orders.Add(new Order { Quantity = 1, Part = "abc" } );
cust.Orders.Add(new Order { Quantity = 1, Part = "def" });
ctx.SubmitChanges();

当您调用时SubmitChanges,ORM 将处理:

  • 执行必要的插入和更新
  • 更新任何对象上的任何必要元数据(身份、行版本等)
  • ETC

所以 - 在调用 之后SubmitChanges,您应该看到它cust已经获得了它应该拥有的任何身份。特别要注意的是,在添加Orderetc 时,我添加了objects,而不是身份。这是必要的,因为我们还不知道身份。另请注意,这使用单个事务。

于 2013-08-07T09:21:21.920 回答