gpt4 book ai didi

c# - Entity Framework : Insert foreign key rows when Update table

转载 作者:行者123 更新时间:2023-11-30 12:56:19 24 4
gpt4 key购买 nike

通过使用 Entity Framework 6 和存储库模式,我尝试更新一行,其中现有行有一个与之关联的新外键对象。例如,Person 记录已经存在。 Person 得到一个新的 Dog。所以现在 Person 类有一个 Dog 属性实例化并填充了数据。

这是我的更新方法:

public async Task<TObject> UpdateAsync(TObject updated, int key)
{
if (updated == null)
return null;

var existing = await this._context.Set<TObject>().FindAsync(key);
if (existing != null)
{
this._context.Entry(existing).CurrentValues.SetValues(updated);
}

await this._context.SaveChangesAsync();

return existing;
}

我通过执行以下操作来调用它:

personRecord.Dog = new Dog () { Name = "Max", Age = 7 };
await this.PersonRepository.UpdateAsync(personRecord, personRecord.Id)

但是没有新的 Dog 记录被插入到数据库中。我做错了什么?

最佳答案

你检查实体人和实体狗的状态了吗?

在saveChange()之前实体状态必须是修改状态或者创建状态

执行插入

你可以用

检查这个statut

context.Entry(person).State

关于c# - Entity Framework : Insert foreign key rows when Update table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41939274/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com