Создание объекта с помощью конструктора в сопоставлении объектов - PullRequest
0 голосов
/ 18 марта 2019

У меня есть следующий объект 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();

IsЕсть ли способ использовать конструкторы объектов внутри класса быстрого отображения?

Ответы [ 2 ]

1 голос
/ 21 марта 2019

Из документации:

... NHibernate требует, чтобы все открытые свойства класса сущности были объявлены как виртуальные.Также требуется конструктор без параметров: если вы добавляете конструктор с параметрами, обязательно добавьте также конструктор без параметров.( ref )

0 голосов
/ 19 марта 2019

нет там нет!Почему вам нравится действовать так?

Во-первых, вам не хватает виртуального ключевого слова в ваших свойствах AddressObject.

Во-вторых, Map-Method отображает значения в столбце, поэтомуни одна сущность не отображается, кроме одного значения (string, enum, int и т. д.).

Если вы хотите сослаться на AddressObject из другой модели, вы должны использовать Reference(x => ....

...