【发布时间】: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