c# – 实体框架渴望加载不返回数据,懒惰负载 - 代码日志

c# – 实体框架渴望加载不返回数据,懒惰负载

我使用的代码首先是EF5,我有一个对象,它的集合被定义为虚拟(懒加载)。调用时返回数据。但是我希望它能够加载。我已经从属性签名中删除了虚拟机,但是它总是返回空数据。 EF甚至没有运行查询,任何人都可以帮忙?

编辑:我知道.include()我只是喜欢使用非虚拟属性的方法来做。

对象

用户([Key] Id位于资源对象,该对象是人类的父级):

namespace Entities
{
    [Table("Users")]
    public class User : Person
    {

    [Required]
    public ICollection<Role> Roles { get; set; } 

    }
}

角色:

namespace Entities
{
    public class Role
    {
        [Key]
        public string Id { get; set; }

        public virtual ICollection<User> Users { get; set; } 
    }
}
这是一个常见的混乱。与之相反的是延迟加载:没有加载,除非你明确地加载自己(例如通过使用Include加载)。

所以如果你以任何方式关闭延迟加载 – 删除虚拟修改器是其中之一 – 行为不会变成渴望加载,而是加载。

想想,假设EF将热切地加载没有标记为延迟加载的所有内容。你可以通过一个简单的查询来运行加载数据库的一半的风险!

有一个no way可以让导航属性默认加载(如果你仍然希望阅读上面的内容)。

http://stackoverflow.com/questions/18917423/entity-framework-eager-load-not-returning-data-lazy-load-does

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:c# – 实体框架渴望加载不返回数据,懒惰负载