【发布时间】:2011-06-11 07:38:58
【问题描述】:
我想设计一个基础树节点类,其他实体类可以从中派生,我想应该是这样的:
public abstract class BaseTreeNode
{
public string Id{get;set;}
public string Name{get;set;}
public string ParentId{get;set;}
[ForeignKey("ParentId")]
public BaseTreeNode ParentNode{get;set;}
}
public class MenuNode:BaseTreeNode
{
}
但是,当尝试使用 MenuNode 类构建一些层次结构时,它似乎不起作用。当我调用 SaveChanges 方法时,它抛出了 SqlException:Invalid object name 'dbo.BaseTreeNode'。
我认为问题在于属性“ParentNode”,因为它是一个抽象类。 那么,在这种情况下,我应该如何首先使用实体框架 4.1 代码来设计我的类。
非常感谢!
【问题讨论】:
-
我认为问题不在于
ParentNode属性。该模型是有效的(PrarentId除外,我猜这只是一个错字)。问题一定出在其他地方。您能否展示 1) 带有 DbSet 属性的 DbContext,2) 任何 Fluent 映射(如果有的话),3) 引发异常的代码。
标签: tree entity-framework-4.1 ef-code-first