我在類庫中使用靜態幫助器類來過濾使用LINQ的某些實體。我傳遞了ObjectContext和我想要過濾的參數。問題是ObjectContext被損壞。實體框架3.0和幫助類
例如:
Users u = EntityHelper.GetUsersOfCertainAge(ObjectContext, 24);
ObjectContext.SaveChanges();
的用戶列表將被適當填充,但程序會崩潰時ObjectContext.SaveChanges()
,雖然已經不需要做任何改變。即使發生變更,我也無法保存所做的更改。
我得到「空引用異常」和日期時間溢出等。它似乎是一個空對象結束在ObjectContext,所以當我試圖保存時,它違反了數據庫中的各種約束。我不知道爲什麼,但是我在Helper類中做的所有事情是使用LINQ過濾ObjectContext中的某個列表並返回結果。
你們知道什麼可能導致這種腐敗,如果方法是明顯的錯誤/不好或如果有很好的選擇?後續工作創建一個新的上下文,但感覺像一個黑客。
實施例(存儲在一個單獨的類庫,在一個靜態類):
public static User GetFirstUserOfCertainAge(Entities ctx, int inputAge)
{
return ctx.Users
.Where(x => x.Age == inputAge)
.OrderByDescending(x => x.Created)
.FirstOrDefault();
}
你是什麼意思與損壞? – Xharze 2012-04-26 22:19:15
對不起,我有點累。澄清它,希望它有幫助! – user1359816 2012-04-26 22:40:18
你可以發佈'GetUsersOfCertainAge()'的代碼嗎? – CodingWithSpike 2012-04-26 22:43:39