【问题标题】:Unable to get navigation property(foreign key data) due to LazyLoading由于延迟加载,无法获取导航属性(外键数据)
【发布时间】:2015-02-25 06:44:41
【问题描述】:

我已经使用 WebApi 创建了 MVC 项目。它工作正常,但我在简单控制器的详细方法中获取 导航属性(外键数据) 时遇到问题。我知道问题是由于LazyLoading写在下面的代码中,在DBEntities构造函数中。

public DBEntities():base("name=GJ5ServiceProviderDBEntities")       
{
    this.Configuration.LazyLoadingEnabled = false;            
}

当我从上面的代码中删除 this.Configuration.LazyLoadingEnabled = false; 行时,它对 MVC 项目工作正常,那时我得到所有 导航属性(外键数据),但之后我得到以下错误WebApi:

“ObjectContent`1”类型未能序列化响应正文 内容类型'应用程序/json; charset=utf-8'。

获取代码

public async Task<ActionResult> Details(int? id)
{
      if (id == null)
      {
          return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
      }

      TableServiceProvider tableServiceProvider = 
          await db.TableServiceProviders.FindAsync(id);

      if (tableServiceProvider == null)
      {
           return HttpNotFound();
      }
      return View(tableServiceProvider);
 }

那么有什么办法可以解决以上两个问题吗?

【问题讨论】:

  • 发布您的获取代码。
  • @FrebinFrancis 我添加了获取代码
  • 只需创建另一个模型,将所有需要的属性放入该模型并将 TableServiceProvider 中的值设置为新模型。删除 actionresult 返回类型并将其替换为新模型名称。
  • 你可以参考这个链接了解如何使用include来避免延迟加载stackoverflow.com/questions/10822656/…stackoverflow.com/questions/21607455/…

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


【解决方案1】:

首先我要感谢Frebin Francis 的回复和帮助。

我可以在我的代码中添加一行来解决上述问题。db.Configuration.LazyLoadingEnabled = true;

这段代码对我有用。

    public async Task<ActionResult> Details(int? id)
    {
        db.Configuration.LazyLoadingEnabled = true;
        if (id == null)
        {
            return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
        }
        TableServiceProvider tableServiceProvider = await db.TableServiceProviders.FindAsync(id);
        if (tableServiceProvider == null)
        {
            return HttpNotFound();
        }
        return View(tableServiceProvider);
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-22
    • 1970-01-01
    相关资源
    最近更新 更多