none
Entity Framework 如何处理一个实体映射多个表[one entity mapping multiple tables] RRS feed

  • 问题

  • 对于Entity Framework, 我是个新人; 最近用到个实体框架来简化对数据库表的操作, 不过在实际中遇到如下一些问题, 在博客园这里希望各位大虾帮我看看下, 是否可以解决, 或者说Entity Framework是否支持?

    我在数据库TestDB中建了三个表: Person, Area, House; 表示某个人在某个地区所拥有的房子.

    其中 PersonHouse的对应关系是1对多的关系.

    数据库如下如图


    Person

    Area

    House

    我已经加些一些测试数据进去, 如图

     

    表建好了,并且测试数据已经添加; 现在我想用Entity FrameworkPerson,Area,House三张表映射到一个实体(Entity), 这个新Entity包含的信息如下图所示:

    我用VS2010新建Console Project, 名字是: TestProject, 然后我加入了一个ADO.NET Entity Data Model, 把它命名为: Model1.edmx; 选择的数据库是我创建的测试数据库, 并选中Person,Area,House这三个表, 这时VS2010会自动生成三个对应Table的实体类Person, Area, House, 如下图所示:

    由于我的目的是实现一个Entity映射3table, 所以Person.PersonName, Area.AreaName 这些属性都移入至House实体对象, 效果如图:

    然后我把Person,Area实体删除掉, 但我要保留Person,Area表在Store Model, 因而在删
    Entity, 在弹出的提示框中,选择[No]按钮, 如图:

    删除Person, Area 实体后, 就只剩下House 实体了, 如图:

    接下来我进行关系的映射, 希望最终的House实体能正确取得如下信息:

     

    下面是我配置的Table Mapping :

     

    按我理解, 经过这样Mapping, 应该是正确的, 也应该能正确地读取数据才对的, 但我编译时, 失败了, 出现了错误的提示信息, 如图:

    至于为什么会发生错误, 我就不清楚了, 肯定是我有些地方配置不正确造成的, 但我就是想用一个实体映射多个表, 虽然表的关系是1对多的关系, 请问我那里设定错了呢? 还是Entity Framework 不支持这种方式呢? 或者有更好的方案, 麻烦都告诉我, 谢谢!

    2012年8月31日 23:36

全部回复