实体框架代码第一个错误 - 实体类型“变量”没有定义键

时间:2012-10-28 14:31:10

标签: c# asp.net .net asp.net-mvc entity-framework

我在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;
}

1 个答案:

答案 0 :(得分:0)

你要求的关系没有与之相关的表格。

需要放置对象任务

的位置
public class MyContext : DbContext, IDisposedTracker
{

    public DbSet<Project> Projects { get; set; }
    public DbSet<Task> Tasks { get; set; }
    public bool IsDisposed { get; set; }
}