我在ASP.NET MVC 4项目中使用Entity Framework 5 Code First,我收到以下错误:
在模型生成期间检测到一个或多个验证错误:
\ tSystem.Data.Entity.Edm.EdmEntityType :: EntityType'Variable'没有定义键。定义此EntityType的键。 \ tSystem.Data.Entity.Edm.EdmEntitySet:EntityType:EntitySet'Variables'基于没有定义键的'Variable'类型。
描述:执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.Data.Entity.ModelConfiguration.ModelValidationException:在模型生成期间检测到一个或多个验证错误:
\ tSystem.Data.Entity.Edm.EdmEntityType :: EntityType“Variable”没有定义键。定义此EntityType的键。 \ tSystem.Data.Entity.Edm.EdmEntitySet:EntityType:EntitySet'Variables'基于没有定义键的'Variable'类型。
这让我在最后一小时疯了。我搜索过我的解决方案,并没有任何名为“变量”的东西!
我的上下文如下:
public class MyContext : DbContext, IDisposedTracker
{
public DbSet<Project> Projects { get; set; }
public bool IsDisposed { get; set; }
}
我的模型看起来像这样:
public class Project
{
[Key]
public int Uid { get; set; }
public string Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public List<Task> Tasks { get; internal set; }
}
任务看起来像这样:
public class Task
{
[Key]
public int Uid { get; set; }
public string Id;
public string Name;
}
答案 0 :(得分:0)
你要求的关系没有与之相关的表格。
需要放置对象任务
的位置public class MyContext : DbContext, IDisposedTracker
{
public DbSet<Project> Projects { get; set; }
public DbSet<Task> Tasks { get; set; }
public bool IsDisposed { get; set; }
}