Entity Framework 处理一个实体映射多个表[one entity mapping multiple tables]
对于Entity Framework, 我是个新人; 最近用到个实体框架来简化对数据库表的操作, 不过在实际中遇到如下一些问题, 在博客园这里希望各位大虾帮我看看下, 是否可以解决, 或者说Entity Framework是否支持?
我在数据库TestDB中建了三个表: Person, Area, House; 表示某个人在某个地区所拥有的房子.
其中 Person与House的对应关系是1对多的关系.
数据库如下如图
Person 表
Area表
House表
我已经加些一些测试数据进去, 如图
表建好了,并且测试数据已经添加; 现在我想用Entity Framework把Person,Area,House三张表映射到一个实体(Entity), 这个新Entity包含的信息如下图所示:
我用VS2010新建Console Project, 名字是: TestProject, 然后我加入了一个ADO.NET Entity Data Model, 把它命名为: Model1.edmx; 选择的数据库是我创建的测试数据库, 并选中Person,Area,House这三个表, 这时VS2010会自动生成三个对应Table的实体类Person, Area, House, 如下图所示:
由于我的目的是实现一个Entity映射3个table, 所以Person.PersonName, Area.AreaName 这些属性都移入至House实体对象中, 效果如图:
然后我把Person,Area实体删除掉, 但我要保留Person,Area表在Store Model中, 因而在删
除Entity时, 在弹出的提示框中,选择[No]按钮, 如图:
删除Person, Area 实体后, 就只剩下House 实体了, 如图:
接下来我进行关系的映射, 希望最终的House实体能正确取得如下信息:
下面是我配置的Table Mapping :
按我理解, 经过这样Mapping后, 应该是正确的, 也应该能正确地读取数据才对的, 但我编译时, 失败了, 出现了错误的提示信息, 如图:
至于为什么会发生错误, 我就不清楚了, 肯定是我有些地方配置不正确造成的, 但我就是想用一个实体映射多个表, 虽然表的关系是1对多的关系, 请问我那里设定错了呢? 还是Entity Framework 不支持这种方式呢? 或者有更好的方案, 麻烦都告诉我, 谢谢!