我正在尝试让Entity Framework与已建立的数据库一起使用,并且遇到了一个奇怪的错误,对我来说这是没有道理的。
当我尝试运行程序时,出现以下堆栈跟踪异常:
clear-cache
该程序听起来像是它正在尝试查找列composer install
,并在找不到该列时引发异常。但是,尚未在数据库中的任何地方或解决方案中的代码中定义此列,因此我不知道从何处获取此列名称。
具有Unhandled Exception: System.Data.Entity.Core.EntityCommandExecutionException: An error occurred while executing the command definition.
See the inner exception for details. ---> System.Data.SqlClient.SqlException: Invalid column name 'CorrespondenceAddress_AddressId'.
属性的相关类是我的CorrespondenceAddress_AddressId
类。如下定义:
CorrespondenceAddress
对应于此类的数据库表是使用以下查询创建的:
Property
任何人都可以为我解释此错误,因为我不确定该如何解决。
答案 0 :(得分:0)
在实体类和表中更改CorrespondenceAddressId和SecurityAddressId的顺序。错误消息现在是否更改为SecurityAddress_AddressId?
当未隐式声明事物时,EF用默认行为推断事物。 CorrespondenceAddress_AddressId试图查找未声明的内容。
您只想声明一个:
SolicitorInstruction SolicitorInstruction { get; set; }
但是SolicitorInstruction有3 FK。 Ef可以使第一个为InstructionId工作并猜测其他人。
您在这里有解决方案的代码: