0
我有一個ASP .Net網絡項目,我嘗試將多重記錄到我的基地乘的項目。
我的想法是更新記錄,並使用更新的參數複製這些記錄。
但我的記錄只更新,我不明白如何使乘法插入(我不想讓foreach和插入/更新1記錄)。
我怎樣才能使1個更改的參數Records唱片公司和這個到插入件副本後更新?如何插入與實體框架和LINQ
我的代碼:
public void SAVE(List<int> list,int stat)
{
var all = context.ReqForDoc.ToList();
var friends = context.ReqForDoc.Where(f => list.Contains(f.requestN)).ToList();
friends.ForEach(a => // UPDATE WORK
{
a.actual = 0;
a.ReqStatus = stat;
a.ChangeDate = DateTime.Now;
});
all.AddRange(friends); // INSERT NOW WORK
context.SaveChanges();
}
EF變化跟蹤器使用引用相等。因此,您必須創建** new **對象,並手動複製/更新原始屬性,然後像當前那樣將它們添加到相應的'DbSet',而不是* local list *。 –
@IvanStoev很抱歉,但我怎樣才能將它們添加到我的數據庫,沒有的AddRange在這種情況下,工作太: 列表列表2 =新名單(); list2 = context.ReqForDoc.Where(f => list.Contains(f.requestN))。ToList(); context.ReqForDoc.AddRange(list2); context.SaveChanges(); –
我不能告訴正是因爲我沒有你的模型,但它應該是這樣的(你似乎錯過了** **新註釋的一部分)'context.ReqForDoc.AddRange(friends.Select( f => new ReqForDocType {Prop1 = f.Prop1,Prop2 = f.Prop2,...}))'。只要不包括PK在選擇,如果它的身份。 –