0

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

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

4

1 回答 1

1

您可以拥有“随心所欲”的方法,以及不会在数据库中映射的没有设置器的属性。或带有 a 的属性NotMappedAttribute,其中...不会被映射。

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

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

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

var test = new Test {
                Name = bla,
                Code = 2
                };
于 2012-07-12T08:52:21.960 回答