【问题标题】:Enity Framework migrations - Multiplicity is not valid in Role实体框架迁移 - 多重性在角色中无效
【发布时间】:2014-08-27 09:20:48
【问题描述】:

我将回到 EF(代码优先)和 ATM 尝试使用 DataAnnotations 建立 1-1 关系。

public class CmsMember
{
    [Key]
    public int nodeId { get; set; }
    public string Email { get; set; }
    public string LoginName { get; set; }
    public string Password { get; set; }

    public Client Client { get; set; }
}
public class Client
{
    [ForeignKey("CmsMember")]
    public int nodeId { get; set; }
    public int ClientId { get; set; }
    public string ClientName { get; set; }

    public CmsMember CmsMember { get; set; }
}

我遇到了错误(添加迁移命令)说:

** \tSystem.Data.Entity.Edm.EdmAssociationEnd: : 多重性在关系“Client_CmsMember”中的角色“Client_CmsMember_Source”中无效。因为从属角色属性不是关键属性,所以从属角色的多重性的上限必须是“”。 *

任何提示将不胜感激。

【问题讨论】:

    标签: c# entity-framework entity-framework-migrations


    【解决方案1】:

    您需要 key 属性,因为您的属性名称不符合约定。

    [Key, ForeignKey("CmsMember")]
    public int nodeId { get; set; }
    

    【讨论】:

    • 感谢它解决了 EF 问题,但现在当尝试将数据插入数据库时​​,我得到“当 IDENTITY_INSERT 设置为 OFF 时,无法在表 'Client' 中插入标识列的显式值”。有什么想法吗?
    • 数字键的默认约定是标识,如果您有明确设置 id 的 sql 查询语法,那可能就是原因
    【解决方案2】:

    我认为this 应该可以帮助您。有同样的错误,你的代码是相似的。您还需要更改属性的位置,应该在您要在上面的情况下使用的属性上方

    public CmsMember CmeMember { get; set; }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-25
      相关资源
      最近更新 更多