EF代码第一次延迟加载无效?

  • 回答 (1)
  • 关注 (0)
  • 查看 (45)

首先在EF6中使用代码:

public class Merchant : User
{
    ...

    public virtual ICollection<MerchantLocation> MerchantLocations { get; set; }
}

public class MerchantLocation : BaseEntity
{
    ...

    public int MerchantId { get; set; }
    public virtual Merchant Merchant { get; set; }       
}

public class User : BaseEntity
{
    ...
}

public class BaseEntity
{
    ...

    public int Id { get; set; }
}

通过下面的代码(失败)测试我延迟加载的位置:

public void Test_Lazy_Loading() {
    using (var context = new MyDbContext()) {
        var merchant = context.Users.OfType<Merchant>.First();
        merchant.MerchantLocations.ShouldNotBeNull(); // fails
    }
}

然而:

public void Test_Eager_Loading() {
    using (var context = new MyDbContext()) {
        var merchant = context.Users.OfType<Merchant>.Include("MerchantLocations").First();
        merchant.MerchantLocations.ShouldNotBeNull(); // passes
    }
}

MerchantLocations标记为public virtual

Configuration.LazyLoadingEnabled = true;
Configuration.ProxyCreationEnabled = true;
呼呼呼1542呼呼呼1542提问于
Maybe回答于

具体来说,需要添加一个受保护的无参数构造函数。

回答过的其他问题

对象存储文件详情是否能提供MD5值?

如果需要上传较大文件应该使用分块上传 文档在这里: https://cloud.tencent.com/document/product/436/14112 上传分块 上传一个分块到指定的 UploadId 中,单个大小不得超过 5 GB。 方法原型 upload_p...... 展开详请

服务器设置中填四个不同的域名,还是填同一个域名?

request 请求数据 socket 向网络发出请求或者应答网络请求 uploadfile 文件上传 down 文件下载 希望能帮到你... 展开详请

OCR识别身份证接口中的image参数?

按照这个依次填写: 请求参数 使用 application/json 格式。 参数 是否必选 类型 说明 appid 必选 string 项目ID bucket 必选 string 图片空间 ret_image ...... 展开详请

求大侠帮忙 nginx访问index.php 结果直接下载网页了?

应该是把break改成last就好了 location / { rewrite ^/ /index.php break; } 你的这一段意思为,将所有的uri转发请求重写为index.php 然后break,新的重写后的uri(在这个列...... 展开详请

Memcached自动容灾功能怎样购买使用?

第一个问题:云缓存Memcached提供主从热备,通过定期镜像和实时流水同步来备份。如果云缓存Memcached掉电,在极端情况下会损失短时间未落盘的数据,但是概率极小。 第二个问题:Memcached安全可靠,重启机器不丢数据,双机热备,主备切换对业务透明,跨机架跨交换机部署,...... 展开详请

审核拒绝,域名未能通过备案系统域名核验?

应该是域名出现问题了把 ,可以建议看下两个大牛的说法。。。

所属标签

扫码关注云+社区

领取腾讯云代金券