我有一个与 EF4.3 一起使用的规范化数据库。
在这种情况下,我有一个用户(每个人都是用户)。有些是订阅者,订阅者是贡献者、成员或管理员。
因此,对于每种类型的用户,我都会通过导航属性包含适当的关联。
所以成员 linq 语句将是这样的:
var u = r.FindBy(x => x.UserId == userId)
.Include("Subscribers")
.Include("Members")
.SingleOrDefault();
就对象而言,每个人都是用户 - 只是不同的排列。
当不包含某些导航属性时,我正在尝试寻找在代码中处理此问题的最佳方法。例如,我不会在上面的示例中包括贡献者或管理员。通常我可以检查 user.subscriber.contributor 不为 NULL,但即使我进行此检查,我也会得到“对象上下文已被处理...”。
我该如何解决这个问题?