Entity framework 调用DbContext.Set<;T>;().Include()没有查询包含的属性吗?

Entity framework 调用DbContext.Set<;T>;().Include()没有查询包含的属性吗?,entity-framework,entity-framework-4.1,Entity Framework,Entity Framework 4.1,我已经关闭了DbContext上的延迟加载和代理创建。我正在使用存储库partern和UnitOfWork。我的UnitOfWork继承自DBConext。下面是我正在做的一个例子: public class User { public Guid Id {get;set;} public virtual Guid UserTypeId {get;set;} //foreign key to UserType and setup in the EF fluent mapping

我已经关闭了DbContext上的延迟加载和代理创建。我正在使用存储库partern和UnitOfWork。我的UnitOfWork继承自DBConext。下面是我正在做的一个例子:

public class User
{
     public Guid Id {get;set;}
     public virtual Guid UserTypeId {get;set;} //foreign key to UserType and setup in the EF fluent mappings and it does load if I am using lazy loading.
     public virtual UserType {get;set;}
}

public class UserType
{
     public Guid Id {get;set;}
     public string Name {get;set;}
}
这是在我的UoW内:

        public IDbSet<TEntity> CreateSet<TEntity>() where TEntity : class
        {
            return base.Set<TEntity>();
        }
用户类型没有包含在查询中,我不知道是什么。我应该调用DbContext上的Set以外的东西吗

更新


在调用base.Set之前,我正在考虑,我需要在那里添加include。但是不确定。

IQueryable上的所有扩展方法通常以生成新的
IQueryable
的方式工作,因此如果要获得效果,必须指定它:

public IDbSet<TEntity> GetSet()
{
    var set = _unitOfWork.CreateSet<TEntity>();

    if(Includes != null)
    {
        foreach (var include in Includes)
        {
            set = set.Include(include);
        }
    }

    return set;
}
public IDbSet GetSet()
{
var set=_unitOfWork.CreateSet();
如果(包括!=null)
{
foreach(包含在包含中的var)
{
set=set.Include(包括);
}
}
返回集;
}

顺便说一句,它看起来很像。

如果使用:
set=set.Include(Include)?@LadislavMrnka,从没想过……我会试试看……@LadislavMrnka,如果你想回答这个问题,我会相信你的。那太好了!!!!我希望我在开始这方面的实验时看到:
var users = userRespository.Get(u => u.Id == SomeGuid, u => u.UserType);
public IDbSet<TEntity> GetSet()
{
    var set = _unitOfWork.CreateSet<TEntity>();

    if(Includes != null)
    {
        foreach (var include in Includes)
        {
            set = set.Include(include);
        }
    }

    return set;
}