在对象映射中通过构造函数创建对象

问题描述 投票:-1回答:2

我有以下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();

有没有办法在流畅的映射类中使用对象构造函数?

c# nhibernate fluent-nhibernate fluent-nhibernate-mapping
2个回答
1
投票

从文档:

... NHibernate要求将实体类的所有公共属性声明为虚拟。它还需要一个无参数构造函数:如果添加具有参数的构造函数,请确保添加无参数构造函数。 (ref


-1
投票

不,那里没有!你为什么喜欢这样做?

首先,您错过了AddressObject属性的虚拟关键字。

其次,Map-Method映射每列的值,因此没有映射实体,只有一个值(string,enum,int等)。

如果你想从其他模特中引用AddressObject你必须使用Reference(x => ...

© www.soinside.com 2019 - 2024. All rights reserved.