0

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

我正在寻找验证,但我看到的所有示例都只抛出错误而没有有效地转换值。

荷兰邮政编码示例:“5126HG”或“5126 HG”应在数据库中产生相同的结果。我已经知道如何改变,但不知道在哪里以及如何申请。

4

2 回答 2

1

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

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

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

于 2011-11-25T08:36:12.993 回答
0

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

最好有一些单独Controller的类,该类具有获取、验证、转换输入的方法,然后才Entity使用有效、正确和一致的值设置属性。

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

于 2015-10-09T11:10:46.180 回答