1

我有两个类,名为TextImage,它们都继承自抽象类Item。我们已经将它映射到一个.edmx文件中,并从那里生成了一个数据库。

现在,每当尝试从数据库中获取TextImage从数据库中获取时,我都面临以下异常:

There are no EntitySets defined for the specified entity type 'ModelLibrary.Text'.
If 'ModelLibrary.Text' is a derived type, use the base type instead.
Parameter name: TEntity

我无法访问或保存Item类,因为它们是抽象类,并且它们从不包含与TextImage类关联的信息。

我用来尝试访问数据的代码:

ProjectEntities context = new ProjectEntities(); //this inherits from ObjectContext and was generated by EF

var textRepo = new TextRepository(context);
var lstTexts = textRepo.GetAll();
foreach (var i in lstTexts)
{
    Console.WriteLine(i.textTitle);
}

该类textRepo用于访问和保存到数据库。textRepo我在继承自的类的构造函数上遇到异常(DataRepository)

protected DataRepository(ObjectContext context)
{
    Context = context;
    ObjectSet = Context.CreateObjectSet<T>();
}

我已经对异常进行了一些研究,并发现了这个问题:EF4 - custom ObjectContext and inherit question

问题的答案实际上是应该发生的事情(为特定类型制作 ObjectSet)。我似乎只是在应该防止异常的行上得到异常。

现在,我想知道可能出了什么问题或我错过了什么。由于继承,我需要做一些额外的事情吗?请注意,我对 Entity Framework 有点陌生,所以如果我在这里犯了一个非常明显的错误,我深表歉意。如果您需要更多信息或代码,请随时询问。

编辑:为了更具体地说明异常,我将其上ObjectSet = Context.CreateObjectSet<T>();线。我不能在测试代码中添加太多内容,因为我已经在类的基textRepo类(即类)的构造函数中得到了异常DataRepository

4

0 回答 0