在对象映射中通过构造函数创建对象
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在对象映射中通过构造函数创建对象相关的知识,希望对你有一定的参考价值。
我有以下Address对象:
public class AddressObject
{
public string Postcode { get; set; }
public string City { get; set; }
public string Street { get; set; }
public AddressObject(string PostCodeString, string CityName, string StreetName)
{
Postcode = PostCodeString;
City = CityName;
Street = StreetName;
}
public AddressObject(string PostCodeString, string CityName)
{
Postcode = PostCodeString;
City = CityName;
}
public AddressObject() { }
}
我想根据上面的构造函数使用以下流畅的映射:
Map(x => x.AddressObject).Column("PostCode", "Name").Not.LazyLoad();
有没有办法在流畅的映射类中使用对象构造函数?
答案
从文档:
... NHibernate要求将实体类的所有公共属性声明为虚拟。它还需要一个无参数构造函数:如果添加具有参数的构造函数,请确保添加无参数构造函数。 (ref)
另一答案
不,那里没有!你为什么喜欢这样做?
首先,您错过了AddressObject
属性的虚拟关键字。
其次,Map-Method映射每列的值,因此没有映射实体,只有一个值(string,enum,int等)。
如果你想从其他模特中引用AddressObject
你必须使用Reference(x => ...
。
以上是关于在对象映射中通过构造函数创建对象的主要内容,如果未能解决你的问题,请参考以下文章