EF 4.1 EntityType 没有键 - 复合

2024-01-16

我刚刚使用 NuGet 升级到最新的 EF 4.1 代码优先,现在收到有关映射的错误。

我有这门课

public class UserApplication
{
    [Key, Column(Order = 0)]
    [DatabaseGenerated(DatabaseGeneratedOption.None)]
    public int UserId { get; set; }

    [Key, Column(Order = 1)]
    [DatabaseGenerated(DatabaseGeneratedOption.None)]
    public int ApplicationId { get; set; }

    [ForeignKey("ApplicationId")]
    public virtual Application Application { get; set; }

    public DateTime SubscribedDate { get; set; }
}

我收到此错误:

System.Data.Edm.EdmEntityType: : EntityType 'UserApplication' has no key defined. Define the key for this EntityType.
System.Data.Edm.EdmEntitySet: EntityType: EntitySet 'UserApplications' is based on type 'UserApplication' that has no keys defined.

不过,我可以使用 Fluent API 让它工作,如下所示

modelBuilder.Entity<UserApplication>().HasKey(obj => new {obj.UserId, obj.ApplicationId });

为什么 EF 没有获取我使用注释定义的复合键? 我非常确定这曾经适用于较旧的 EF 4.1。


我已经解决了这个问题。我刚刚添加了额外的关键列:

public class AlbumUser
{
    public Album Album
    {
        get;
        set;
    }

    public IdentityUser User
    {
        get;
        set;
    }

    [Key]
    [Column(Order = 0)]
    [StringLength(128)]
    public string UserId
    {
        get;
        set;
    }

    [Key]
    [Column(Order = 1)]
    public int AlbumId
    {
        get;
        set;
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

EF 4.1 EntityType 没有键 - 复合 的相关文章

  • 在 Entity Framework 4.1 Code First 中排除列可更新

    有谁知道我们是否可以在 Entity Framework 4 1 Code First 中排除列的更新 例如 我有 CreatedOn 字段 我不想在进行编辑 更新时包含该字段 这是否可能 即有选择地从 EF Code First 4 1
  • EF 4.1 EntityType 没有键 - 复合

    我刚刚使用 NuGet 升级到最新的 EF 4 1 代码优先 现在收到有关映射的错误 我有这门课 public class UserApplication Key Column Order 0 DatabaseGenerated Datab
  • MySQL 中的复合主键性能缺陷

    我们有一个表 其复合主键由三个字段组成 在 MySQL 5 1 中 该表每秒有近 200 次插入和 200 次选择 表的大小约为 100 万行 并且还在不断增加 我的问题是 复合主键 是否会降低该表上的插入和选择的性能 我应该使用简单的自动
  • Oracle复合主键/外键问题

    我在 Oracle 的 1 个表中有一个复合主键 我想为第二个表中的一个表条目创建一个外键 该外键引用第一个表中的复合主键 我收到错误 ORA 02256 关于如何进入这个有什么想法吗 CREATE TABLE groupspersonx
  • 我可以使用实体框架(模型优先)来生成组合键吗?

    我正在使用实体框架的 模型优先 方法设计一个数据库 基于我收到的反馈非常好 https stackoverflow com questions 4969133 database design problem在这里 我对数据库的一部分采用超类
  • EF 4.1 Code First 和现有数据库以及 .NET 成员资格

    我的开发盒上有一个名为 ApplicationName Development 的数据库在 SQL Server 2008 R2 Developer 版本上运行 我将 NET 成员资格表添加到数据库中没有任何问题 当我尝试让 Code Fi
  • 在实体框架代码优先初始化程序中设置数据库排序规则

    我想在 Entity Framework Code First 创建数据库时设置数据库的默认排序规则 我尝试过以下方法 public class TestInitializer
  • EF4 中的并发 - 如何有条件地创建实体

    我需要能够创建一个新的用户实体only if提供的电子邮件是唯一的 我以前总是通过执行一个简单的操作来处理这个问题if UserSet Any 在我之前AddToUserSet 然而 这不是一个并发解决方案 并且会在重负载下崩溃 我一直在研
  • 如何在 EF Code First 中映射表拆分?

    如何使用 EF Code First 映射表拆分 例如 描述了 EDMX 的表拆分here http thedatafarm com blog data access ef table splitting ndash the opposit
  • 如何让 EF 将空字符串保留为 NULL?

    在我的域中 NULL 和空字符串之间没有重要区别 如何让 EF 忽略两者之间的差异并始终将空字符串保留为 NULL 空字符串不是字符串属性的默认值 因此这意味着您的代码正在某处设置空字符串 在这种情况下 您有责任处理 如果您在 POCO 中
  • C# Entity Framework 4.1 Lambda Include - 仅选择特定包含的值

    我正在 EF4 1 上执行 lambda select 包括当前语句中的另一个相关 DBSet return dbEntity GameTypes Include a gt a Draws Where d gt d IsActive tru
  • 实体类型 不是当前上下文模型的一部分

    这是模型优先的方法 我已经对此进行了广泛的研究 但还没有得出答案 我已尝试以下链接中的所有建议 这似乎是同样的问题 但没有解决方案实体类型 不是当前上下文模型的一部分 https stackoverflow com questions 49
  • 保存实体会导致重复插入到查找数据中

    我使用 EF 4 1 代码优先 来创建我的数据库和对象 Given public class Order public int Id get set public string Name get set public virtual Ord
  • 在 SQL Server 中实现一对零或一关系

    我正在使用 Entity Framework 4 1 数据库第一种方法 我使用过旧数据库 在我的 edmx 文件中 它根据旧数据库中的表创建实体类 有一个一对零或一某些实体之间的关联 尽管我探索了数据库表以及它们之间的关系 但我不知道如何一
  • 如何在 CRUD 功能中映射复合键

    我需要基于两个键 comp 和part 进行映射 foreach var item in Model tr td Html DisplayFor modelItem gt item comp td td Html DisplayFor mo
  • 如何使组合键唯一?

    I am making a database of students in one school Here is what I have so far 如果您不喜欢阅读 请跳至 简而言之 部分 问题是我对这个设计并不满意 我想要的组合gra
  • 如何在此 MSDN 示例中使用 Order By

    我正在尝试弄清楚如何使用这个 orderBy 参数 我不确定我应该传递什么 http www asp net mvc tutorials getting started with ef using mvc implementing the
  • 实体框架层次结构的代码优先映射

    我有一个看起来像这样的模型 public class Category public string Id get set public string Description get set public Category Parent ge
  • 在 Entity Framework 4.1 中查询实体的子集合

    我有一组从 DbContext 中的 IDbSet 查询的实体 我现在想要迭代每个实体并查询它们的子集合 这些子集合在实体中定义为 ICollection 在子集合上调用 AsQueryable 并对其运行 linq 查询是否正确 如果是这
  • 如何使用 Entity Framework 4.1 Fluent API 映射 Enum?

    我在 EF 的工作表之间有些迷失了 就像自由世界的其他部分一样 我确实需要在我的 POCO 中使用枚举 像我交谈过的许多人一样 我非常喜欢使用代码映射枚举 只是因为 我只是不太喜欢图片 我的困境是 我在几乎每一篇文章中都得到了相互矛盾的信息

随机推荐