【问题标题】:Entity Not Mapped - Entity Model Framework实体未映射 - 实体模型框架
【发布时间】:2011-08-28 11:52:06
【问题描述】:

我在使用实体模型框架时遇到了很多困难。

我只是在学习如何使用它,所以请多多包涵。

这是异常,以及引发它的代码行:

这就是模型的样子,以及它继承自的模型

这是映射细节的样子:(if语句的顶部被切断)

这是 AccountContext 的样子

如果我没有提供足够的信息,请告诉我

如何映射“用户”实体?

【问题讨论】:

  • 添加用户实体到问题的映射。
  • 该异常是否有InnerException
  • 在声明新的 AccountContext 时直接发生。看起来没有任何 InnerException
  • 这也发生在我身上 - 正是。

标签: c# visual-studio-2010 asp.net-mvc-3 mapping entity-framework-4.1


【解决方案1】:

那里有一个类层次结构,并且有三种不同的继承映射策略:TPH, TPT and TPC

据我了解,在所有三种策略中,您都需要将 基类 包含到 DbContext 中:

public class AccountContext : DbContext
{
    public DbSet<BaseModel> BaseModels { get; set; }
}

这会自动导致 TPH 映射。对于其他两种策略,您需要通过数据注释或 Fluent API 进行额外的映射。

编辑

要查询您的派生类(如User),您可以使用OfType 方法,例如:

UserDb.BaseModels.OfType<User>().ToList()

这会将User 类型的所有实体返回到一个列表中。

【讨论】:

  • 我试过了,但它仍然抱怨没有被映射。
  • @Indebi:你能显示BaseModelUser 类的代码吗? Fluent API 代码中是否有任何映射?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-09
  • 2017-02-11
  • 2011-03-09
  • 1970-01-01
  • 1970-01-01
  • 2014-04-01
相关资源
最近更新 更多