SqlException:解决方案中不存在的字符串的无效列名

时间:2018-10-10 12:43:42

标签: c# entity-framework

我正在尝试让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

任何人都可以为我解释此错误,因为我不确定该如何解决。

1 个答案:

答案 0 :(得分:0)

在实体类和表中更改CorrespondenceAddressId和SecurityAddressId的顺序。错误消息现在是否更改为SecurityAddress_AddressId?

当未隐式声明事物时,EF用默认行为推断事物。 CorrespondenceAddress_AddressId试图查找未声明的内容。

您只想声明一个:

SolicitorInstruction SolicitorInstruction { get; set; }

但是SolicitorInstruction有3 FK。 Ef可以使第一个为InstructionId工作并猜测其他人。

您在这里有解决方案的代码:

https://stackoverflow.com/a/5559300/10192838