【发布时间】:2016-10-13 09:16:29
【问题描述】:
我有一个 BaseScript,在 Script 中有一个 GetAll 不加载相关实体。
在 DbContext 中禁用了 LazyLodingEnabled (false)。
按照一些代码来了解我的问题。在此示例中,当我想按语言获取消息时,它不会加载用户和消息视图。
基础脚本
public abstract class BaseScript<TEntity> where TEntity : EntityBase
{
public virtual IEnumerable<TEntity> GetAll()
{
using (EntityDbContext ctx = new EntityDbContext())
{
return ctx.Set<TEntity>().ToList();
}
}
}
消息脚本
public class MessageScript : BaseScript<Message>
{
public IEnumerable<Message> GetAllByLanguagePublic(string language)
{
return this.GetAllPublic().Where(x => x.Language == language).ToList();
}
}
消息实体:
public class Message : EntityBase
{
public string Text { get; set; }
public string Language { get; set; }
public virtual User User { get; set; }
public Guid UserId { get; set; }
public virtual ICollection<MessageView> MessageViews { get; set; }
}
【问题讨论】:
标签: c# .net entity-framework eager-loading