Entity Framework 4.2 模型生成异常

Posted

技术标签:

【中文标题】Entity Framework 4.2 模型生成异常【英文标题】:Entity Framework 4.2 Model Generation Exception 【发布时间】:2012-01-26 18:42:51 【问题描述】:

我正在尝试保留两个类:ForumPost 和 ForumReply。它们的所有属性要么具有相应的表列,要么标有 [NotMapped]。两个表都标记了主键列。事实上,我已经完全按照 Pro ASP.NET MVC 3 Framework (http://www.amazon.com/Pro-ASP-NET-MVC-3-Framework/dp/1430234040) 一书中的说明做了他们的 Ch7 教程,但在尝试将这个概念转化为我自己的项目时中断。错误如下:

在模型生成过程中检测到一个或多个验证错误:

System.Data.Edm.EdmEntityType: : EntityType 'ForumPost' has no key defined. Define the key for this EntityType.
System.Data.Edm.EdmEntityType: : EntityType 'ForumReply' has no key defined. Define the key for this EntityType.
System.Data.Edm.EdmEntitySet: EntityType: EntitySet �ForumPosts� is based on type �ForumPost� that has no keys defined.
System.Data.Edm.EdmEntitySet: EntityType: EntitySet �ForumReplies� is based on type �ForumReply� that has no keys defined.

【问题讨论】:

创建 EF 映射后是否添加了主键? 我认为这可能与 ***.com/questions/5011145/… 重复 【参考方案1】:

键是 int 还是 string? 请记住,长度超过 255 的字符串不能用作 Key。 如果您的密钥实际上是一个字符串,请使用 [Key, Required, MaxLength(255)] (或更少)。

【讨论】:

以上是关于Entity Framework 4.2 模型生成异常的主要内容,如果未能解决你的问题,请参考以下文章

如何从 ADO.NET Entity Framework 中的模型生成表?

Entity Framework Core是如何根据实体类生成模型的?

如何转换 Entity Framework 6 来为我的模型生成 FluentAPI 定义,而不是数据注释? (我在 VS2015 中使用 MySQL)

使用nuget包下载Entity Framework6.0无法使用模型类与数据库上下文自动生成controller与view

Entity Framework 6 和 mysql TableDetails 强类型异常

将 INotifyPropertyChanged 与 Entity Framework 6 DbContext 生成器一起使用