我在我的 Sql Server Db 中添加了一个列,然后在 VS 中我从数据库更新了模型,有一个模板自动生成了一些代码。
代码编译得很好,但是当我尝试访问数据库时,会出现以下错误:
数据读取器与指定的“CompassModel.tbSalesContract”不兼容。类型的成员“Finalized”在数据读取器中没有同名的对应列。
Finalized 是我添加到我的数据库中的新列。
有谁知道如何追踪这一点,如果是这样,将来是否有解决方法或方法可以避免?
我在我的 Sql Server Db 中添加了一个列,然后在 VS 中我从数据库更新了模型,有一个模板自动生成了一些代码。
代码编译得很好,但是当我尝试访问数据库时,会出现以下错误:
数据读取器与指定的“CompassModel.tbSalesContract”不兼容。类型的成员“Finalized”在数据读取器中没有同名的对应列。
Finalized 是我添加到我的数据库中的新列。
有谁知道如何追踪这一点,如果是这样,将来是否有解决方法或方法可以避免?
如果您使用的是 SP 然后更新新添加的列,或者如果您使用的是内联查询,则输入新添加列的确切名称。您所说的模板不包含新添加的列名..尝试编辑模板..问题将得到解决。
如果您使用的是 SP,请确保使用的别名.. 即。例如:它应该写成
字段名作为“别名”
谢谢,克里斯托马斯
希望这对某人有所帮助,但是当我收到此错误时,我试图从存储过程中返回实体类型。
为了解决这个问题,我必须添加正确的函数导入映射。在您的 edmx 中,转到模型浏览器视图并导航到函数导入。右键单击您的存储过程名称并选择函数导入映射。在那里,您可以将存储过程返回结果映射到适当的实体属性。