Linq To Sql 插入具有新关联记录的记录

本文关键字:记录 关联 新关联 Sql To 插入 Linq | 更新日期: 2023-09-27 18:32:47

我有两个表:

[Table(Name="Booking")]
public class Booking
{
    private EntityRef<Transaction> _transaction;
    [Column(IsPrimaryKey = true, IsDbGenerated = true)] 
    public int ID;
    [Column] public int Quantity;
    [Column] public int EventID;
    [Column] public int TransactionID;
   [Association(Strorage = "_transaction", ThisKey = "TransactionID", OtherKey = "ID")]
    public Transaction Transaction
    {
        get { return _transaction.Entity; }
        set { _transaction.Entity = value; }
    }
}
[Table(Name="Transaction")]
public class Transaction
{
    [Column(IsPrimaryKey = true, IsDbGenerated = true)]
    public int ID;
    [Column] public decimal Amount;
    [Column] public DateTime DatePaid;
}

我想执行以下操作:

Booking booking = new Booking
{
    /* set data */
    Transaction = new Transaction
       {
           Amount = 200,
           DatePaid = DateTime.Now
       }
}
db.Bookings.InsertOnSubmit(booking);
db.SubmitChanges();

但它不会插入事务并标记外键约束错误。

有什么方法可以在不调用 db 的情况下同时添加预订交易。提交更改() 两次以获取交易 ID?

Linq To Sql 插入具有新关联记录的记录

尝试以下操作:

var booking = new Booking();
booking.Transaction.Add(new Transaction { Amount = 200, DatePaid = DateTime.Now });
db.Bookings.InsertOnSubmit(booking);
db.SubmitChanges()