Asp.net mvc 3 未定义键EntityFramework CTP5

Asp.net mvc 3 未定义键EntityFramework CTP5,asp.net-mvc-3,sql-server-2008,entity-framework-ctp5,Asp.net Mvc 3,Sql Server 2008,Entity Framework Ctp5,我正在使用EntityFramework CTP5、SQL Server 2008运行MVC3 我不认为这是个问题,但我想我可以提一下。 因为我很懒,所以我创建了linqtosql,复制了属性定义并粘贴到我自己的模型中,然后删除了dbml文件 EntityFramework的某些数据类型可能是错误的吗? 我对EntityFramework还是相当陌生的 我添加了[key]注释 [Key] public System.Guid FormID; 我仍然得到这个错误 System.Data.Enti

我正在使用EntityFramework CTP5、SQL Server 2008运行MVC3

我不认为这是个问题,但我想我可以提一下。 因为我很懒,所以我创建了linqtosql,复制了属性定义并粘贴到我自己的模型中,然后删除了dbml文件

EntityFramework的某些数据类型可能是错误的吗? 我对EntityFramework还是相当陌生的

我添加了[key]注释

[Key]
public System.Guid FormID;
我仍然得到这个错误

System.Data.Entity.ModelConfiguration.ModelValidationException: One or more validation errors were detected during model generation: 
System.Data.Edm.EdmEntityType: : EntityType 'FormInfo' has no key defined. Define the key for this EntityType.
System.Data.Edm.EdmEntitySet: EntityType: The EntitySet FormInfoes is based on type FormInfo that has no keys defined.
我注意到EntitySet中的“FormInfo”设置为“FormInfo”。所以,我把它添加到我的上下文中

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
    base.OnModelCreating(modelBuilder);
}
模型创建时受保护的覆盖无效(ModelBuilder ModelBuilder)
{
modelBuilder.Conventions.Remove();
基于模型创建(modelBuilder);
}
我正在初始化上下文

DbDatabase.SetInitializer<SQLServerContext>(null);
DbDatabase.SetInitializer(null);
由于数据库已经存在,我不想重新创建或删除它


谢谢任何人的帮助

您已经定义了一个字段。不是财产。将声明更改为属性

[Key]
public System.Guid FormID { get; set; }

我添加这行代码是为了从“forminfo”modelBuilder.Conventions.remove()中删除“es”;还是不走运,所以大部分问题都解决了。但是我现在得到了这样的结果:System.Data.Edm.EdmEntityType::EntityType'XElement'没有定义键。定义此EntityType.System.Data.Edm.EdmEntitySet的键:EntityType:EntitySet XElement基于未定义键的类型XElement。映射框架类将很困难。您需要使用fluent API来配置密钥
modelBuilder.Entity().HasKey(x=>x.Foo)
感谢Eranga的帮助。