如何修复System.Data.Edm.EdmEntityType没有键

RPS*_*RPS 14 .net linq asp.net-mvc entity-framework

有谁知道如何解决此错误:

System.Data.Edm.EdmEntityType :: EntityType'BlogTags'没有定义键.定义此EntityType的键.

将MVC 3与实体框架结合使用.

小智 24

只需将[Key]放在您的财产顶部(显示主键).像这样的东西,

[Key]
public int BlogTypeId { get; set; }
Run Code Online (Sandbox Code Playgroud)

  • 但是,如果文件是自动生成的,则只会在重新运行项目时删除更改. (4认同)

kin*_*ngo 14

如果实体的密钥遵循约定'Id'或'EntityNameId',MVC3将自动识别实体的密钥.此外,实体必须将其作为属性公开,并且必须是PUBLIC.我犯了使用protected for my property的错误并得到了这个错误.

一个很好的例子是:

public int Id { get; set; }
Run Code Online (Sandbox Code Playgroud)

要么

public int EntityNameId { get; set; }
Run Code Online (Sandbox Code Playgroud)

如果您不能遵循此约定,或者您希望在代码中非常明确,请使用[Key]属性.

  • 如果存在已经存在的数据库并且您仍然得到相同的错误会发生什么?我正在使用MVC 3和SQL Server 2008 R2. (2认同)

Cod*_*lla 5

该错误告诉您需要知道的所有内容:"定义此EntityType的密钥".

在EF中,所有实体必须具有某种类型的主键.