EF模型下使用Linq語句引發在提供程式連線上啟動事務時出錯
在EF下使用linq查詢時沒有將結果轉換成list直接使用,會佔用資料庫連線,使後續的資料庫操作引發異常。
var hardwareMonitor = (from monitor in db.T_Monit_HardwareMonitor group monitor by new { monitor.TerminalCode } into g select new { AddTime = (DateTime?)g.Max(p => p.AddTime), g.Key.TerminalCode });
後續執行db.T_Test.Add(Test);時會引發在提供程式連線上啟動事務時出錯
正確寫法:var hardwareMonitor = (from monitor in db.T_Monit_HardwareMonitor group monitor by new { monitor.TerminalCode } into g select new { AddTime = (DateTime?)g.Max(p => p.AddTime), g.Key.TerminalCode }).ToList();將查詢結果儲存到記憶體中。