我一直在使用基于.Net Core3.1和PostgreSQL 12的EF。主要的问题是我不能使用EF添加一行。它总是希望获得一个主键。我有一个baseClass,其中有一个属性-- "Id“,它有一个键属性。默认情况下,所有其他实体都继承自baseClass以获取Id属性。此外,我还创建了通用存储库,以便在一个地方使用任何存储库。它内部有以下方法,如创建、更新、删除和GetAll。现在,我可以从数据库中获取任何数据,但不能将任何行插入到any表中,因为EF希望获取主键。下面你可以看到异常。
Unable to track an instance of type 'ProjectData' because it does not have a primary key. Only entity types with primary keys may be tracked.
请指教我该怎么做!
发布于 2020-09-10 22:31:12
到目前为止,这是一个关于实体框架的开放问题:https://github.com/aspnet/EntityFramework.Docs/issues/898
不能在没有密钥的DbQuery或DbSet上添加新实体。我建议你跟踪这个问题,现在模拟你的上下文,或者使用实体框架核心模拟来完成这一点。
发布于 2020-09-11 17:32:59
问题已解决!必须创建解决方案中的迁移。只有这样它才能正常工作。
https://stackoverflow.com/questions/63837814
复制相似问题