【发布时间】:2020-02-12 09:49:34
【问题描述】:
我创建了一个 Web API 来连接和更新 SQL Server 中的数据,使用 实体框架 6(数据库优先)。
我注意到当我为我的表生成控制器时,Get<XXX> 函数只返回表行而不包括子行。
我可以使用System.Data.Entity.Include 扩展方法解决这个问题吗?
但是,当我做了一个简单的测试来检索表行及其关联的子行时,我得到了响应
StatusCode:500,ReasonPhrase:“内部服务器错误”,
我的代码如下:
// GET: api/Fields/5
[ResponseType(typeof(Field))]
public async Task<IHttpActionResult> GetField(Guid id)
{
Field field = await db.Fields.Include(x=>x.Layers).FirstOrDefaultAsync(i => i.FieldKey == id);
if (field == null)
{
return NotFound();
}
return Ok(field);
}
如果我使用没有包含的原始生成代码,它可以正常工作。
我在 DbContext 构造函数中禁用了延迟加载和代理:
this.Configuration.LazyLoadingEnabled = false;
this.Configuration.ProxyCreationEnabled = false;
【问题讨论】:
标签: c# sql-server controller entity-framework-6 webapi