Web API Controller在实体框架数据库优先模型中调用存储过程。
存储过程会在我的SQL Server数据库中插入一个条目,然后返回新创建的条目。
存储过程的函数导入设置为返回复杂类型,这是一个自定义创建的 TagDTO (此DTO在 TasksModel.tt 中创建)
但是,我继续收到错误" 检测到自我参考循环"调用此API方法时。
我从下面缺少什么?存储过程会正确插入数据。
TagDTO课程:
API控制器代码:
答案 0 :(得分:1)
确保在返回之前从db上下文中删除该对象。我相信这可以通过在db上下文中添加以下Evict方法来完成。这将使它只序列化该对象的立即值,它不会尝试序列化导航属性。
// this goes inside of your Context Object, parent class may already implement it
public void Evict(object entity)
{
Entry(entity).State = EntityState.Detached;
}
然后像这样使用它:
dbContext.Evict(entityFrameworkObject);