我在类库中使用静态帮助器类来过滤使用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