0
在我的項目中,我有兩個單獨的具有單獨實體上下文的服務器,首先我從一臺服務器獲取數據並通過此代碼將其保存到列表中:同時使用來自兩個不同服務器的兩個實體上下文
BarForooEntities1 bfe = new BarForooEntities1();
SaleHistory sh = new SaleHistory();
RadifsSendCenter rs = new RadifsSendCenter();
BaskoolEntities be = new BaskoolEntities();
var q = (from d in bfe.RadifsSendCenter
where d.Daryaft == true
orderby d.id_rec
select d).ToList();
然後,我通過使用此代碼保存列表到另一臺服務器數據庫:
foreach (var v in q)
{
sh.id_rec = v.id_rec;
sh.Radifkolsal = v.Radifkolsal;
sh.Dates = v.Dates;
sh.DateErsal = v.DateErsal;
sh.TimeErsal = v.TimeErsal;
sh.Karkhane = v.Karkhane;
sh.Namekala = v.Namekala;
sh.Vazn = v.Vazn;
sh.Bandal = v.Bandal;
sh.Dobaskul = v.Dobaskul;
sh.OldYear = v.OldYear;
sh.Sal = v.Sal;
sh.del = v.del;
sh.edit = v.edit;
sh.Daryaft = v.Daryaft;
sh.Shobe = v.Shobe;
sh.Greid = v.Greid;
sh.TedadBas = v.TedadBas;
sh.Rahgiry = v.Rahgiry;
sh.Tozih = v.Tozih;
sh.NoeShemsh = v.NoeShemsh;
sh.Metrazh = v.Metrazh;
sh.Keyfiat = v.Keyfiat;
sh.Address = v.Address;
sh.City = v.City;
sh.Karbar = v.Karbar;
sh.CodeKala = v.CodeKala;
sh.CodeGoruh = v.CodeGoruh;
sh.CodeKG = v.CodeKG;
sh.CodeGreid = v.CodeGreid;
sh.Tel = v.Tel;
sh.ShenaseMeli = v.ShenaseMeli;
sh.Sefaresh = v.Sefaresh;
sh.Tolid = v.Tolid;
sh.Shenase = v.Shenase;
var u = (from bu in be.BarbariUsers
where bu.UserName == Login.username
select bu).FirstOrDefault();
sh.UserID = u.UserID;
sh.ReceiveUser = Login.username;
sh.ReceiveDateTime = DateTime.Now;
be.SaleHistory.Add(sh);
rs.Daryaft = false;
}
be.SaveChanges();
bfe.SaveChanges();
MessageBox.Show("Done!");
當我跑我的項目,一切工作,但名單中只有一個行被添加到第二個列表,也更新第一個數據庫值(rs.Daryaft = false;)不會改變任何事情G。 我知道,如果我在foreach循環中移動(be.SaveChanges();)和(bfe.SaveChanges();),只需要第一個工作需要很長時間,第二個工作不會做任何事情。也許我會走錯路。 任何建議或其他解決方案來解決這個問題?
您應該在循環內創建新對象。 –
我做到了,但有時它有效,有時不適用。我完全糊塗了。 – kavir
您應該製作一個[簡短,自包含,可編譯的示例](http://sscce.org/),它可以重現您的問題,所以我們有一些工作要做。 –