【问题标题】:MVC One to one relationship with codefirstMVC 与 codefirst 的一对一关系
【发布时间】:2017-06-11 21:06:21
【问题描述】:

我正在尝试与我的模型建立一对一的关系。但我收到以下错误:“多重性在关系‘DetayAcıklama_UrunBilgi’中的角色‘DetayAcıklama_UrunBilgi_Target’中无效。因为从属角色属性不是关键属性,所以从属角色多重性的上限必须是‘*’ 。”

我的模型如下:

public class Urun
    {
        [Key]
        public int UrunID { get; set; }
        [Required]
        public string UrunKodu { get; set; }

        [Required]
        public decimal Fiyat { get; set; }

        [ForeignKey("DetayBilgi")]
        public int DetayAcıklamaID { get; set; }
        public DetayAcıklama DetayBilgi { get; set; }

    }


public class DetayAcıklama
    {
        [Key]
        public int DetayAcıklamaID { get; set; }

        [Display(Name = "Açıklama")]
        public string AcıklamaTxt { get; set; }

        public decimal Fiyat { get; set; }

        [Required, ForeignKey("UrunBilgi")]
        public int UrunID { get; set; }
        public Urun UrunBilgi { get; set; }
    }

我错过了什么?提前致谢

【问题讨论】:

  • 首先你需要决定哪一个是关系principal(被引用)和dependent(引用)。然后从 principal 中删除 FK (XyzId) 属性(他们不能同时拥有两个 FK Ids)。然后决定是要使用Shared Primary Key Association(EF 更容易更自然地支持)还是Foreign Key Association

标签: c# entity-framework ef-code-first


【解决方案1】:

您当前的实现没有说明哪个表依赖于哪个表.. 为此指定一个主键列作为外键:

    [Key, ForeignKey("UrunBilgi")]
    public int DetayAcıklamaID { get; set; }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-16
    • 2015-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多