实体框架4模型首先使用货币价值对象

时间:2011-03-29 21:01:16

标签: entity-framework currency value-objects

我想在我的应用程序中使用Money值对象。我找到了几个Money datatype的例子。但我无法弄清楚如何在EF4中使用它们。我想将每个金额存储为Decimal / CurrencyCode对(其中currencycode是一个字符串 - “USD”,“SEK”等)在数据库中。我尝试创建一个complexType但我无法让它工作。这可能吗?

1 个答案:

答案 0 :(得分:1)

应该是绝对可能的。您的复杂类型只是一对十进制和字符串属性。它正是用于复杂类型的。根据您的方法,您必须这样做:

数据库优先:

您将首先定义数据库。您的表将包含代表您的新类型的money和varchar列。从数据库更新EDMX模型时,它会将其作为实体的标量属性包含在内。您必须删除这些属性。然后转到模型浏览器并创建新的复杂类型。返回实体并添加新复杂类型的复杂属性。最后,您必须转到实体映射并将复杂类型映射到这些数据库列。

以下是来自MSDN的基本教程,但由于未知原因,他们没有包含截图等基本细节。 Here是来自channel9的一些视频。

模型第一:

这与数据库优先类似,但您不必处理数据库创建和映射。它将为您生成。

代码优先(EF 4.1):

您必须为复杂类型创建单独的类,并将其用作实体中的属性。默认情况下,您不需要映射它 - 应该进行映射。如果它不起作用,您可以使用ComplextTypeAttribute注释或在DbModelBuilder中定义映射来映射Complext类型。

如果您提供更多详细信息,我可以进一步扩展您需要使用的方法。