Я хочу спроектировать базовый класс узлов дерева, из которого могут быть получены другие классы сущностей, я думал, что это будет так:
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. Это вызвало SqlException: недопустимое имя объекта 'dbo.BaseTreeNode', когда я вызвал метод SaveChanges.
Я думал, что проблема была в свойстве 'ParentNode', поскольку это абстрактный класс.
Итак, как мне спроектировать мои классы в этом случае с помощью кода Entity Framework 4.1.
Большое спасибо!