微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

EF Core-通过WebAPI插入记录时处理导航

如何解决EF Core-通过WebAPI插入记录时处理导航

我的Web应用程序中有以下情况。

我开始创建一个新的表记录。因此,我通过WebAPI访问服务器端初始化逻辑。服务器上的初始化完成后,我将检索我的实体的一个实例,继续使用该实例,直到将其保存。然后,我向WebAPI发出另一个请求以调用数据插入。当我在Add()记录中执行我的DbContext时,我可以看到所有导航也都添加到了更改跟踪器中。当调用DbContext.Add()时,EF就是这样做的。

现在我有一个问题,我无法识别导航属性的值是使用表单输入手动设置的,还是已经由我的自定义初始化逻辑设置的。对于手动资料,我记录了所有修改后的字段,并在add()上忽略了它们,因为在这一点上,它只能是对现有(已插入)表记录的导航。因此,在添加新记录之前,我会选择每个记录。因此,ChangeTracker会认识到在Add()上存在导航,并且由于其正确的“未更改”实体状态,因此不会添加导航。但这不会影响所有在服务器端事先设置的导航属性。我该怎么处理。

WebAPI-控制器方法

TEntity CreateEmpty<TEntity>()

TEntity Insert(TEntity newrecord)

服务器端-型号

public class Blog : TableRecord
{

    public User Admin {get;set;}

    Blog CreateEmpty()
    {
        Init();
    }

    protected override Init()
    {
        base.Init();
        Admin = CurrentUser();
    }
}

WebApp

在以表格形式编辑值之后,首先从API调用CreateNew(),它将输入提交到Insert()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。