实体框架 - 在加载时过滤数据

时间:2012-07-04 17:12:41

标签: asp.net-mvc-3 entity-framework-4.1

我正在使用表单身份验证和单个层次结构实体构建MVC3应用程序。该实体将Region对象作为具有多个其他对象的“根”。它看起来像:

区域 - >语言 - > objectA->对象B
  区域 - >应用 - > ...

每个用户(管理员除外)都与单个区域相关联。我想根据用户的区域限制加载到实体的数据。我不太熟悉EF。这是合适的还是有更好的方法?我将如何实施最佳方法

1 个答案:

答案 0 :(得分:1)

您当然可以过滤通过Entity Framework返回的数据。代码看起来像这样:

using (MyContext ctx = new MyContext())
{
    var filtered = (from r in ctx.Regions where SOME_CONDITIONS select r);
    // Do stuff with filtered (which is an IEnumerable<Region>)
}

请注意,您可能需要使用Include来加载相关对象,例如

ctx.Regions.Include("Language").Include("Application")

请参阅http://msdn.microsoft.com/en-us/library/bb896272.aspx