【发布时间】:2021-09-18 07:42:36
【问题描述】:
使用Microsoft.EntityFrameworkCore 版本5.0.7 和Npgsql.EntityFrameworkCore.PostgreSQL 版本5.0.7,我目前无法尝试删除关系并存储该更改。假设有两个模型:
public class Banana {
public int Id { get; set; }
public Consumer? Consumer { get; set; }
}
public class Consumer {
public int Id { get; set; }
}
我可以很好地分配消费者
myBanana.Consumer = dbContext.Consumers.First(row => row.Id == 1);
dbContext.Update(myBanana);
dbContext.SaveChanges();
而且效果很好 - 数据库会相应更新。但是,一旦存储,尝试再次使用删除引用
myBanana.Consumer = null;
dbContext.Update(myBanana);
dbContext.SaveChanges();
失败。保存后,旧值仍在数据库中,而不是我期望的null。有趣的是,对香蕉的其他更改保存得很好。
我不确定我是否遇到了 Nullables 的奇怪问题,或者我只是遗漏了一些东西,所以我很感激一些提示。
【问题讨论】:
-
这个 public int Consumer 是什么?消费者{得到;放; } 你怎么能编译它?
-
@Serge 这是一个可以为空的值类型见docs.microsoft.com/en-us/dotnet/csharp/language-reference/…
-
@Serge 请原谅,错误地试图简化模型以使其适合。那应该是
public Consumer? Consumer { get; set; }- 相应地进行了编辑。 :)
标签: c# entity-framework entity-framework-core entity-framework-core-5 entity-framework-core-5.0