代码之家  ›  专栏  ›  技术社区  ›  Asım Gündüz

实体框架codefirst 1对多关系

  •  1
  • Asım Gündüz  · 技术社区  · 7 年前

    使用codefirst方法,我希望有一个CODE\u YESNO表,其中有两列C\u CODE(1)和C\u DESC(5),这两列都是字符串类型。

    然后我想把它引用到我的其他表格中。

    例如,假设我有我有用户和产品表

    对于USERS表I,将有userIsActive(外键C\U代码) 对于产品表I,将有productIsOnDiscount(外键C\U代码)

    我不想在CODE\u YESNO表上添加或进行任何修改

    那么,如何使用代码优先的方法做到这一点呢?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Steve Greene    7 年前

    就个人而言,如果是/否,我会使用布尔值。但一般来说,您可以轻松实现查找表。

    public class YesNo
    {
        [Key]
        public string C_CODE { get; set; }
        public string C_DESC { get; set; }
    }
    

    然后您的类通过导航属性引用:

    public class User
    {
        public int UserId { get; set; }
        public string UserName { get; set; }
    
        public string UserIsActiveCode { get; set; }
        [ForeignKey("UserIsActiveCode")]
        public YesNo UserIsActive { get; set; }
    }
    
    public class Product
    {
        public int ProductId { get; set; }
        public string ProductName { get; set; }
    
        public string ProductIsOnDiscountCode { get; set; }
        [ForeignKey("ProductIsOnDiscountCode")]
        public YesNo ProductIsOnDiscount { get; set; }
    }