2011-11-25 44 views
0

我想知道如何在使用实体框架时更改输入值。直到现在我正在使用自制的自定义类,我转换为实体类。我想我正在把我要做的工作加倍。在自定义类中,我在设置器中转换输入值。荷兰的邮政编码是4位数加2个字符。有些人用一个空间将他们分开,其他人将他们一起加入。此时如果需要,正则表达式将分隔字符中的数字。使用实体框架时。在将值写入te数据库之前是否有可能更改输入值?如果是这样,我该怎么做?是否可以使用实体框架部分方法更新已更改事件的值

我正在寻找验证,但所有的例子,我看到哪里只抛出错误,没有有效地转换价值。

荷兰邮政编码“5126HG”或“5126 HG”的示例都应导致数据库中的结果相同。我已经知道如何改变,但不知道如何申请。

+0

你如何将你的类转换为实体类?你的意思是你把你班上的数值映射到实体上吗? –

+0

是的,这正是我正在做的。我有具有相同属性的类。在这个类中是我的业务逻辑。当我想访问数据库时,我有两种方法可以映射来自或去往实体的所有属性,反之亦然。 –

回答

1

我认为使用自定义类是一个好主意,它类似于实现DTO模式,它是将业务层与数据访问层分开的好方法。但是,如果你想添加一些验证/修改方法的实体类,你可以做到这一点。

如果您使用的是EF 4.1,您将POCO类作为由生成器创建的实体作为部分类。您可以添加您的自定义部分类添加验证方法,但您需要在执行数据库操作之前显式调用这些方法。

另一种方法是使用自定义的SaveChange处理程序。在这里您可以找到SaveChange自定义的示例。 http://msdn.microsoft.com/en-us/library/cc716714.aspx

0

在将值写入te数据库之前是否有可能改变包含值?如果是这样,我该怎么做?

最好是有一些单独的Controller类与该需要,验证输入转换才把设置Entity属性与有效,正确和一致的值的方法。

这样,您的Entities总是有效且正确,并且在写入数据库之前,您永远不需要非标准机制来更改值。