2013-08-07 36 views
0

我从来没有使用过它,现在我需要通过inq执行crud操作数据库如何在多个trasaction中通过linq对数据库执行crud操作?

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

所有三个集合属于一个界面以显示我想知道如何更新和添加应执行新的操作一些有

。就像在simele sqlcommand像声明我正在使用单一的保存方法,有更新存储过程,并检查它是否添加一个新的项目,或者它正在编辑,所以如果一个新的条目,第一个表返回它主分配给我其他集合之一proerty并推它以同样的方式。

我的问题是如何做到这一点,如果一个新的条目推送到databse主键应返回,我可以映射到其他集合的属性?

+0

你提到了linq(well,“inq”) - 你在这里使用ORM吗?如果是这样,哪个?实体框架? LINQ到SQL?答案取决于此 –

+0

我的文件扩展名是.dbml。我在哪里查询和获取表格,并希望推入相同。 – NoviceToDotNet

+1

dbml是LINQ-to-SQL –

回答

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将处理:

  • 上的任何对象
  • 执行必要的插入和更新
  • 更新任何必要的元数据(身份证,rowversion等)

所以 - 拨打SubmitChanges后,您应该即使cust已经拿起任何身份的意思。特别要注意的是,当加入Order等时,我加了对象,而不是身份。这是必要的,因为我们没有知道的身份呢。还请注意,这使用单个事务。

相关问题