【问题标题】:Mapping interface using FluentNhibernate and Autofac使用 FluentNhibernate 和 Autofac 的映射接口
【发布时间】:2018-12-17 11:52:02
【问题描述】:

我有一个棘手而极端的问题,我如何使用 FluentNHibernate 来映射接口?请按照下面的示例进行操作: 我有一个界面:

public interface IUser
{
    String Name { get; set; }
    City City { get; set; }
}

我有一个实现这个接口的类:

public class User : IUser
{
    String Name { get; set; }
    ICity City { get; set; }
}

考虑一下,女巫也存在一个用于 City 的类,并包含一个名为 Country 的属性,并且也存在于它的接口中...... 我需要使用 FluentNHibernate 进行如下映射:

public class UserMap : ClassMap<IUser>
{
    public UserMap()
    {
       Map(e => e.Name);
       References<City>(x => x.City).Cascade.All();
    }
}
public class CityMap: ClassMap<ICity>
{
    public CityMap()
    {
        Map(e => e.Country);
    }
}

【问题讨论】:

    标签: c# nhibernate orm mapping fluent-nhibernate


    【解决方案1】:

    映射接口好像是supported:

    命名的持久类是一个接口是完全可以接受的。然后,您将使用 &lt;subclass&gt; 元素声明该接口的实现类。

    我想,&lt;subclass&gt; 元素在 Fluent NHibernate 中的等价物是 SubclassMap&lt;T&gt;。因此,虽然不清楚你的实际问题是什么,但你可以试试这个吗:

    public class UserMap : SubclassMap<IUser>
    {
    }
    
    public class CityMap: SubclassMap<ICity>
    {
    }
    

    【讨论】:

      猜你喜欢
      • 2010-12-13
      • 2011-08-25
      • 1970-01-01
      • 2014-10-03
      • 2012-03-14
      • 2010-11-27
      • 2012-04-14
      • 2015-09-09
      • 2012-01-21
      相关资源
      最近更新 更多