以前用EntityFramework4.0.0的时候实体类对应一个数据库的一个表,表与表的关系在实体类中用如:public virtual Role Role { get; set; }而在EntityFramework4.3.1下却总出现运行错误,说某列名无效,而这个列名在在数据库和代码中并不存在。请问是怎么回事?在EntityFramework4.3.1中在代码中表示表与表之间的关系?
”而这个列名在在数据库和代码中并不存在“ 如果你添加这个列名到数据库的相对应的表呢?你的映射关系是怎么样的?
我的意思是它报错报的是一个好像是自动生成的一个列名,而我的实体类和数据库的字段是完全对应的。实体只多了一个虚拟类如:public virtual Role Role { get; set; }
@bluefirework: "实体只多了一个虚拟类如:public virtual Role Role { get; set; }" 是不是这个类存在什么继承关系,导致映射不对?
为什么不用它自己生生的映射关系(类)
@Angkor: 这个是映射Role表,运行的时候提示列名'Role_RoleID'列无效,而我Role表定义的主键是RoleID,根本就没有'Role_RoleID'不知道是不是有什么规则,抓狂了
@Angkor: Sql Profiler跟踪一下,看看生成的SQL语句是什么东西!!
诡异的问题,让人很蛋疼。。。。呵呵
可以是实体映射关系没有定义好
可以把映射删除了,重新映射回,应该就好了。
把代码发上来看一下吧。
仁兄:你把你这个问题解决了没?