使用entityframework时防止获取引用表值

时间:2014-09-17 08:31:18

标签: entity-framework

我在我的Apllication中使用EntityFramework。如果我想获取一个表值意味着将返回具有所有引用的表值的值。获取所有表值需要时间。如果我需要一个指定的参考表值,则意味着

如何阻止获取其他参考表值?

1 个答案:

答案 0 :(得分:0)

如果要提取没有引用表的单个表记录,则需要在DBContext类中定义LazyLoadingEnabled false。

示例您的数据库名称是EmpReview

public class UserDataLayerContext : DbContext
{
    public UserDataLayerContext()
        : base("name=EmpReview")
    {
        this.Configuration.LazyLoadingEnabled = false;
    }

所以在UserDataLayerContext过滤时间内的所有DBSet类只获得没有任何引用类的单表记录。

使用this.Configuration.LazyLoadingEnabled = false;没有返回引用表calss但是你需要获得单个引用表检查下面的例子,

假设一个表类是UserMaster,它是GroupMaster master的链接

So 
return context.UserMasters.Include("GroupMaster").Where(x => (x.UserID == id) && (x.IsActive == 
        true)).ToList();

在这种情况下,您将获得包含组主表的所有usermaster记录。

并且

return context.UserMasters.Where(x => (x.UserID == id) && (x.IsActive == true)).ToList();

以上情况,您将获得带有组主表的usermaster的所有记录。