无法使用基于EF的.Net Core 3.1API项目向Posgres添加一行

问题描述

我一直在使用基于.Net Core 3.1和PostgreSQL 12的EF。主要问题是我无法使用EF添加行。它总是想获得一个主键。我有一个baseClass,其中有一个属性-具有[Key]属性的“ Id”。默认情况下,所有其他实体均从baseClass继承以获取Id属性。 我还创建了通用存储库以在一个地方使用任何存储库。它内部具有以下方法,例如创建,更新,删除和GetAll。现在,我可以从数据库中获取任何数据,但是由于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.

请告知该怎么做!

解决方法

直到现在,这是关于实体框架的一个未解决的问题:https://www.itechempires.com/2018/05/how-to-implement-google-recapcha-with-vuejs-and-laravel-5-6/

您不能在没有键的DbQuery或DbSet上添加新实体。我建议您跟踪此问题,现在模拟您的Context或使用Entity Framework Core Mock来实现。

,

问题已解决! 必须在解决方案中创建迁移。只有这样,它才能正常工作。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...