【问题标题】:Adding behavior to EF Entity classes向 EF 实体类添加行为
【发布时间】:2012-07-12 08:47:41
【问题描述】:

要定义实体框架可序列化的类(EF Code First),我们需要使用公共虚拟属性作为数据持有者,稍后将用作数据库中的列。这使开发人员失去了从构造函数初始化实体实例的能力。我希望我的实体不仅是数据“桶”,而且还具有行为,例如新对象的构造函数实例化,以及对象内数据操作的方法。

我想我可以拥有的方法,但是我应该怎么做才能克服构造函数的限制?我应该引入将逐个实例化实体属性并使用它的包装类吗?

【问题讨论】:

    标签: c# .net entity-framework


    【解决方案1】:

    您可以“随心所欲”地使用方法,也可以使用不会在数据库中映射的没有设置器的属性。或者带有NotMappedAttribute 的属性,...不会被映射。

    注意:只有导航属性(引用和集合)需要是虚拟的才能延迟加载。不是原始人。我认为这是 NHnibernate 的要求。

    对于构造函数,您可以根据需要添加任意数量的参数化构造函数,您只需要 ALSO 一个无参数的构造函数。

    顺便说一句,你也可以使用对象初始化器。

    var test = new Test {
                    Name = bla,
                    Code = 2
                    };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-14
      相关资源
      最近更新 更多