C# 使用fluent nhibernate在第二个类中有两个类实例时如何映射?

C# 使用fluent nhibernate在第二个类中有两个类实例时如何映射?,c#,orm,fluent-nhibernate,C#,Orm,Fluent Nhibernate,我正在研究哪个实体框架和(fluent)nHibernate最适合一个项目。我遇到了一些映射问题。我希望这里有人能帮我快速解决我的问题:) 以下是我的实体类: public abstract class DisplayItem { public virtual int Id { get; set; } public virtual string Name { get; set; } public virtual string Description { get; set;

我正在研究哪个实体框架和(fluent)nHibernate最适合一个项目。我遇到了一些映射问题。我希望这里有人能帮我快速解决我的问题:)

以下是我的实体类:

public abstract class DisplayItem
{
    public virtual int Id { get; set; }
    public virtual string Name { get; set; }
    public virtual string Description { get; set; }
}

public class Link : DisplayItem
{
    public virtual Node FromNode { get; set; }
    public virtual Node ToNode { get; set; }

    public Link()
    {
    }
}

public class Node : DisplayItem
{
    public virtual IList<Link> LinksFrom { get; set; }
    public virtual IList<Link> LinksTo { get; set; }

    public Node()
    {
        LinksFrom = new List<Link>();
        LinksTo = new List<Link>();
    }
}

知道我做错了什么吗?

首先,在列表中使用泛型:

public class Node : DisplayItem
{
    public virtual IList<Link> LinksFrom { get; set; }
    public virtual IList<Link> LinksTo { get; set; }

    public Node()
    {
        LinksFrom = new List<Link>();
        LinksTo = new List<Link>();
    }
}
公共类节点:DisplayItem
{
来自{get;set;}的公共虚拟IList链接
公共虚拟IList链接{get;set;}
公共节点()
{
LinksFrom=新列表();
LinksTo=新列表();
}
}
其次,您有继承,但是您没有说明您在数据库中要做什么。如果要忽略继承,则需要这样做 :

AutoMap.AssemblyOf(cfg)
.IgnoreBase();
默认值是tableper子类


如果要按类层次结构创建表,请小心。

我猜到了答案。如果不正确,数据连接不正确是什么意思?你想用什么遗产?
public class Node : DisplayItem
{
    public virtual IList<Link> LinksFrom { get; set; }
    public virtual IList<Link> LinksTo { get; set; }

    public Node()
    {
        LinksFrom = new List<Link>();
        LinksTo = new List<Link>();
    }
}
AutoMap.AssemblyOf<Entity>(cfg)
  .IgnoreBase<Entity>();