相关疑难解决方法(0)

流畅的NHibernate:如何创建一对多双向映射?

基本问题:如何在Fluent NHibernate中创建双向一对多地图?

细节:

我有一个有很多孩子的父对象.在我的情况下,孩子没有父母,所以在数据库中,我想外键的母体有NOT NULL约束是没有意义的.我从Fluent NHibernate映射自动生成我的数据库.

我的父母有很多子对象,如下所示:

public class Summary
{
   public int id {get; protected set;}

   public IList<Detail> Details {get; protected set;}
}

public  class Detail
{
   public int id {get; protected set;}

   public string ItemName {get; set;}

  /* public Summary Owner {get; protected set;} */ //I think this might be needed for bidirectional mapping?
}
Run Code Online (Sandbox Code Playgroud)

这是我开始的映射:

public class SummaryMap : ClassMap<Summary>
{
    public SummaryMap()
    {
        Id(x => x.ID);

        HasMany<Detail>(x => x.Details);
    }
}

public class DetailMap : …
Run Code Online (Sandbox Code Playgroud)

nhibernate nhibernate-mapping fluent-nhibernate

44
推荐指数
1
解决办法
3万
查看次数

FluentNHibernate:如何将HasMany(x => x.Addresses).KeyColumn("PersonId")转换为自动化

说我有这些模型:

public class Person
{
    public virtual int Id { get; private set; }
    public virtual ICollection<Address> Addresses { get; private set; }
}

public class Address
{
    public virtual int Id { get; private set; }
    public virtual Person Person { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我希望FluentNHibernate创建以下表:

Person
    PersonId
Address
    AddressId
    PersonId
Run Code Online (Sandbox Code Playgroud)

这可以通过使用流畅的映射轻松实现:

public class PersonMapping : ClassMap<Person>
{
    public PersonMapping()
    {
        Id(x => x.Id).Column("PersonId");
        HasMany(x => x.Addresses).KeyColumn("PersonId");
    }
}

public class AddressMapping : ClassMap<Address>
{
    public AddressMapping()
    {
        Id(x …
Run Code Online (Sandbox Code Playgroud)

nhibernate fluent-nhibernate automapping

1
推荐指数
1
解决办法
1446
查看次数