C# 使用fluent nhibernate在第二个类中有两个类实例时如何映射?
我正在研究哪个实体框架和(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;
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>();