【问题标题】:WebApi Lazy LoadingWebApi 延迟加载
【发布时间】:2017-03-24 19:53:31
【问题描述】:

我刚开始使用 ASP.NET MVC WebApi 和 EntityFramework,并希望使用数据优先模型将对象从现有数据库中提取出来。这工作正常,但需要相当长的时间才能恢复只有 500 条记录的数据,因为数据与多个表相关。我希望它只带回我拉中的主表以提高搜索性能,所以我做了这样的事情:

    // GET: api/Cases
    public IQueryable<Case> GetCases()
    {
        db.Configuration.LazyLoadingEnabled = true;
        db.Configuration.ProxyCreationEnabled = true;
        return db.Cases;
    }

但是,它仍在拉回所有相关表。知道如何改变吗?

【问题讨论】:

    标签: c# asp.net entity-framework asp.net-web-api


    【解决方案1】:
    public List<Case> GetCases()
    {
        db.Configuration.ProxyCreationEnabled = false;
        return db.Cases.AsNoTracking().ToList();
    }
    

    【讨论】:

    • 这让我在我的 JSON 返回中返回了这个错误:"innerException":{"message":"An error has occurred.","exceptionMessage":"当一个对象通过 NoTracking 合并返回时选项,Load 只能在 EntityCollection 或 EntityReference 不包含对象时调用。”我不确定这到底是什么意思。
    • 更新了我的回复
    猜你喜欢
    • 2012-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-06
    • 2021-07-13
    • 2010-11-26
    • 2011-08-26
    相关资源
    最近更新 更多