我想要检索数据(类别的频道列表)。
这是我的模特:
public class Category : AuditableEntity<int>
{
public string Name { get; set; }
public virtual IEnumerable<CategoryChannel> CategoryChannels { get; set; }
}
public class CategoryChannel : Entity<int>
{
[Display(Name = "Channel")]
public string ChannelId { get; set; }
[ForeignKey("ChannelId")]
public virtual Channel Channel { get; set; }
[Display(Name = "Category")]
public int CategoryId { get; set; }
[ForeignKey("CategoryId")]
public virtual Category Category { get; set; }
}
public class Channel : AuditableEntity<string>
{
public string Name { get; set; }
public virtual IEnumerable<CategoryChannel> CategoryChannels { get; set; }
}
这是我的反向数据代码:
return _entities.Set<Channel>()
.Include(x => x.CategoryChannels).Where(y => y.Name.Equals(category))
.AsEnumerable();
最后我收到了一条错误消息:
指定的包含路径无效。 EntityType 'xxx.Channel'未声明导航属性 名为'CategoryChannels'。
答案 0 :(得分:2)
IEnumerable<T>
不能是用于延迟/急切加载的导航属性,你必须使用ICollection<T>
的实现(Array,List,HashSet ......)或者只是当然ICollection<T>
本身。
IEnumerable
是惰性的,因为table这就是为什么你需要一个确保集合的本地副本的实现的原因。