【问题标题】:Adding related items using Linq to SQL使用 Linq to SQL 添加相关项
【发布时间】:2011-01-07 22:11:31
【问题描述】:

我有一个包含“transactions”和“transaction_lines”的数据库。事务具有基本的共享详细信息,事务行保存构成事务的组件的值。在传统 SQL 中,我会使用 SQL 事务(对不起,我们现在有一个模棱两可的词......)然后我会 INSERT INTO Transaction ...从事务表中的新行中获取 IDENTITY 键值,然后插入到我的 transaction_line 表中,使用 Transaction 表中的标识列作为外键。

有没有使用 linq 的好方法?

这是我目前所拥有的:

account_transaction ac = new account_transaction
                             {
                                 transaction_date = DateTime.Now,
                                 is_credit = isCredit,
                                 account = (db.accounts.FirstOrDefault(a => a.account_id == accountid))
                             };

db.AddToaccount_transaction(ac);

db.SaveChanges();

我认为在 'AddToaccount_transaction(ac)' 和 'db.SaveChanges()' 之间,我需要添加我的 transaction_lines。

【问题讨论】:

    标签: c# linq-to-sql


    【解决方案1】:

    您应该能够创建新的transaction_line 对象并将外部实体设置为ac。在 LINQ-to-SQL 中,您使用实体对象而不是显式键。通过将实体对象设置为ac 对象,您将指示层确定键是什么并为您设置。

    【讨论】:

      【解决方案2】:

      上面的答案是正确的,但我会将它全部包装在 TransactionScope 中。这样,如果该查询的任何部分失败,它将回滚事务。请记住在关闭连接之前调用 scope.Complete() 方法。 http://msdn.microsoft.com/en-us/library/ms251686(VS.80).aspx

      【讨论】:

        猜你喜欢
        • 2010-09-28
        • 2014-12-11
        • 1970-01-01
        • 1970-01-01
        • 2012-08-19
        • 2011-04-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多