Entity framework 4 EF代码优先-连接多个表的实体

Entity framework 4 EF代码优先-连接多个表的实体,entity-framework-4,ef-code-first,code-first,Entity Framework 4,Ef Code First,Code First,我目前有一个由数据库视图支持的EF类(连接多个表)。为了使其可更新,我需要更改由数据库表支持的类。我首先使用EntityFramework4.1代码,但不知道如何建立这些关系 为了简化,我目前有一个Categories类,它返回类别名称(Categories表)和类别类型名称(CategorityTypes表)。它们都在我当前使用的数据库视图中。我想改为ViewModel,它直接从表中返回这两个字段并正确地联接,这样当用户更新类别名称时,EF应该能够正确地处理更新(因为它将更新表而不是视图)。关

我目前有一个由数据库视图支持的EF类(连接多个表)。为了使其可更新,我需要更改由数据库表支持的类。我首先使用EntityFramework4.1代码,但不知道如何建立这些关系


为了简化,我目前有一个Categories类,它返回类别名称(Categories表)和类别类型名称(CategorityTypes表)。它们都在我当前使用的数据库视图中。我想改为ViewModel,它直接从表中返回这两个字段并正确地联接,这样当用户更新类别名称时,EF应该能够正确地处理更新(因为它将更新表而不是视图)。关于如何执行此操作的任何提示?

表是一个表-它是一个单一的数据库对象。如果要删除视图并将其替换为表,则需要删除当前表(
Categories
categoritypes
),并创建一个包含非规范化数据的表。这是一个非常糟糕的解决方案,它会在整个应用程序中给您带来问题

只是为了简化描述:不可能用一个表替换由多个表之间的联接构造的视图,也不可能使视图可更新


您这样做是错误的,因为您显然是将视图模型直接映射到数据库。将
类别
类别类型
映射到实体,使用其
类别类型
加载
类别
,并将其展平到应用程序逻辑中的视图模型(或通过投影加载视图模型)。用户更新视图模型后,将其分解回单独的实体并保存。

谢谢Ladislav!我们已经讨论过这是一个可能的解决方案,但我们仍然不够新,不能确定。所以,很高兴得到你的确认!现在,开始重构吧!