EF 4实体模型设计问题

时间:2011-02-21 20:45:01

标签: entity-framework-4

我有一个我创建的现有数据模型,其中还没有数据。使用Visual Studio 2010,我从此数据库生成了我的.edmx文件(实体数据模型)。我觉得我的数据库中可能有几个FK在我的实体模型中不需要。

在我的实体数据模型中确定所需导航属性的最佳做法是什么?当我查看每个实体并尝试确定是否需要导航属性时,我应该考虑什么。

如果我不需要某个导航属性,我是否也应该在我的数据模型中删除该FK,以便将来的实体模型更新不会将它们拉回来?

在我的数据模型中确定是否需要FK时,最佳做法是什么。

1 个答案:

答案 0 :(得分:1)

为什么要将FK引入数据库?你可能用它们来建立一些参照完整性,不是吗?在这种情况下,请将您的FK保留在DB中,并让EF将它们包含在您的模型中。

EDMX文件有几个部分 - 存储模型,概念模型和模型之间的映射(它也有关于设计者的信息,但它并不有趣)。将表添加到EDMX时,它将在存储模型中与所有FK(关联)一起描述它们。它还在概念模型中创建关联,并为实体添加导航属性。

从数据库更新不会影响对概念模型(实体)的更改。如果删除导航属性,则下次更新模型时不会添加它,但FK仍然存在。

离开导航财产或删除它的决定很难弥补。您将在开发应用程序期间看到它。它也可以通过域模型中的某些规则引入。有时您需要编写复杂的Linq-to-entities查询。编写查询时导航属性非常方便,因为它可以节省您在Linq中写入大量左连接的时间。

相关问题