私は現在、FluentNHibernate を使って勉強を始めていますが、非常に難しいことがわかりました。これらは私のオブジェクトです:
public class Region
{
  public virtual Int64 Id { get; set; }
  public virtual string Name { get; set; }
  public virtual IList<City> ListCity { get; set; }
  public Region()
  {
   ListCity = new List<City>();
  }
 }
public class City
{
 public virtual Int64 Id { get; set; }
 public virtual string Name { get; set; }         
}
マッピングは次のとおりです。
public class RegionMap : ClassMap<Region>
{
        public RegionMap()
        {
            Table("tbRegion");
            Id(x => x.Id)
                .Column("Num_ID");
            Map(x => x.Name)
                .Column("Des_Name")
                .Not.Nullable();
            HasMany<City>(x => x.ListCity)
                .Inverse()
                .Cascade.SaveUpdate()
                .AsBag();
        }
    }
 public class CityMap : ClassMap<City>
    {
        public CityMap()
        {
            Table("tbCity");
            Id(x => x.Id)
                .Column("Num_ID");
            Map(x => x.Name)
                .Column("Des_City")
                .Not.Nullable();
        }
    }
ここまでは大丈夫だと思います。データベースを生成するために Hibernate を所有していました マッピングをテストするための簡単なコード:
List<City> lcity = new List<City>();
lcity.Add(new City()
{
  Name = "Belo-Horizonte"
});
Region region = new Region()
{
    ListCity = lcity,
    Name = "Minas Gerais"
};
Repository.Connect(s => s.Save(region));
私の結果を見てください
Num_ID Des_Name
1 ミナスジェライス
Num_ID Des_City Region_id
1 ベロオリゾンテ NULL
REGION_ID が入力されなかったのはなぜですか??
ありがとう!