假設我有 Entity Framework Core 的下表/類結構。是否可以在一次呼叫中插入帶有連接表的新記錄SaveChanges?
我知道它可以通過 2 次保存來完成(插入 TableB > 保存 > 插入 TableAB > 保存),并且有一個類似的問題。
public class TableA
{
public int Id { get; set; }
public ICollection<TableAB> ABs { get; set; } = null!;
}
public class TableAB
{
public int TableAId { get; set; }
public TableA TableA { get; set; } = null!;
public int TableBId { get; set; }
public TableB TableB { get; set; } = null!;
}
public class TableB
{
public int Id { get; set; }
}
uj5u.com熱心網友回復:
只需一次保存即可插入多個相關物件非常容易 - 例如:
var b1 = new TableB();
var b2 = new TableB();
context.TableAs.Add(new TableA
{
ABs = new List<TableAB>
{
new TableAB
{
TableB = b1,
},
new TableAB
{
TableB = b2,
},
},
});
context.TableAs.Add(new TableA
{
ABs = new List<TableAB>
{
new TableAB
{
TableB = b1,
},
},
});
context.TableAs.Add(new TableA
{
ABs = new List<TableAB>
{
new TableAB
{
TableB = b2,
},
},
});
context.SaveChanges();
TableB唯一稍微復雜的部分是在您需要從多個位置參考相關物體 ( ) 時保留對它們的參考。
這假定您的Id屬性是IDENTITY資料庫中的所有列。如果沒有,您需要手動分配它們。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/416600.html
標籤:
上一篇:EFCore多對多linq查詢
下一篇:無法創建物體框架代碼優先遷移
