【问题标题】:is it possible to update values on changed event using Entity Frameworks partial methods是否可以使用实体框架部分方法更新更改事件的值
【发布时间】:2011-11-25 08:08:28
【问题描述】:

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

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

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

【问题讨论】:

  • 如何将类“转换为实体类”?您的意思是您将类中的值映射到实体?
  • 是的,这正是我正在做的。我有具有相同属性的类。在这个类是我的业务逻辑。当我想访问数据库时,我有两种方法可以将所有属性从实体映射到实体,反之亦然。

标签: c# entity-framework partial-methods


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多