我有以下地址对象:
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();
是否可以在流畅的映射类中使用对象构造函数?
答案 0 :(得分:1)
从文档中:
... NHibernate要求将实体类的所有公共属性声明为虚拟。它还需要一个无参数的构造函数:如果添加具有参数的构造函数,请确保也添加无参数的构造函数。 (ref)
答案 1 :(得分:-1)
不,没有!你为什么喜欢这样?
首先,您错过了AddressObject
属性上的虚拟关键字。
第二个Map-Method映射每列的值,因此没有实体被映射,而是一个值(字符串,枚举,整数等)。
如果要引用其他模型中的AddressObject
,则必须使用
Reference(x => ...
。