簡體   English   中英

流利的NHibernate IList <string>

[英]Fluent NHibernate IList<string>

我有以下課程:

public class Address
{
    public virtual int Id { get; private set; }

    public virtual IList<string> AddressLines { get; set; }

    public virtual string CityOrTown { get; set; }

    public virtual string County { get; set; }

    public virtual string Postcode { get; set; }

    public virtual string Country { get; set; }

    public virtual Member Member { get; set; }

    public Address()
    {
        AddressLines = new List<string>();
    }

    public virtual void AddAddressLine(string addressLine)
    {
        AddressLines.Add(addressLine);
    }
}

和以下映射類:

public AddressMap()
{
    Id(x => x.Id);
    HasMany(x => x.AddressLines).Element("AddressLine");
    Map(x => x.CityOrTown);
    Map(x => x.County);
    Map(x => x.Postcode);
    Map(x => x.Country);
    References(x => x.Member);
}

表“ addresslines”由兩列“ Address_Id”和“ AddressLine”創建,並帶有指向“ address”表的外鍵。

出於某種原因,當保存地址時,“ AddressLines”集合不會持久保存到數據庫中。

我想念什么嗎?

似乎沒有很多有關映射IList的信息。 我知道這不是過去不可能的,因為字符串是值類型而不是實體類型,但是我被認為現在應該可行嗎?

HasMany(x => x.AddressLines).Element("AddressLine").Cascade.AllDeleteOrphan();

您需要設置默認的層疊約定。

使用自動映射時,請按照以下步驟操作:

            AutoMap.Assemblies(_assemblies)
                .Conventions.Add(
                    // Do cascading saves on all entities so lists  will be
                    // automatically saved 
                    DefaultCascade.All(),
                );

據我所知,您可以對映射類執行相同的操作,但是我不知道確切的語法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM