在EF 4中自定义实体并使用验证功能

时间:2012-05-06 20:45:01

标签: c# asp.net-mvc asp.net-mvc-3 entity-framework entity-framework-4

我想知道我是否可以在EF中自定义我的实体,这些实体不一定对应于数据库表中的所有字段。这样我就可以利用内置的MVC验证功能。

以下是我正在尝试做的简化示例。所以假设我有一个Person表定义为:

-Id,
-name,
- 出生地。

在视图中,用户将键入其名称,然后选择出生国家/地区,然后选择其位置。由于位置属于某个国家/地区,因此无需将出生国家/地区存储在人员表中,但需要在视图中选择该国家/地区以填充位置选项。

因此,该国家/地区是视图中的必需值。

我知道我可以在服务器上手动验证这个必需的值,但是我想知道我是否可以在名为CountryId的EF实体中定义一个额外的属性,该属性将被标记为必需,然后我获得所有默认的MVC验证功能。

如果这是一种常见的做法,那么有用教程的链接将不胜感激。

由于

1 个答案:

答案 0 :(得分:3)

我想说你可以使用MVVM模式来分割你的ViewModel,它可以使你的数据模型不同。所以你可以在上面设置验证属性。 此博客post中详细介绍了该方法: 它背后的想法是让您的ViewModel以某种方式验证它并将您的数据放入您的业务模型的适当字段。 您可以使用某种Mapper解决方案。 AutoMapper是一个很好的开始。