• Code First 指定外键名称


    指定类外键有注释(DataAnnotation)和FluentAPI两种方式,

    目前掌握的知识我们先把DataAnnotation可用的四种方式总结如下

    第一种方法:

    //1-指定导航属性,会自动生成外键,命名规则为:“表名_主键名”
    //这种方式兼容性非常好,稍后需要总结的关于一个类中出现两个或者多个相同类属性的时候就使用的这种方式,而下面的第三种方式就不成功,会出现错误,具体细节在下一篇博客中介绍
    
        public class User
        {
           //[Key]
            public int UserID { get; set; }
    
            public string Name { get; set; }
        }
    
        public class UserExtInfo
        {
            public int UserExtInfoID { get; set; }
            //1-生成外键:User_UserID
            public virtual User User { get; set; }
    
        }

    第二种方法:

    //2-默认情况下与导航属性的主键名称相同的字段会自动被标记为外键,
    
        public class User
        {
            public int UserID { get; set; }
    
            public string Name { get; set; }
        }
    
        public class UserExtInfo
        {
            //2-生成外键:UserID
            public int UserID { get; set; }
            public virtual User User { get; set; }
     }
        }

    第三种方法:可指定生成的数据库中的列名。

    //3-通过[ForeignKey]标记指定实体类的属性为外键,
        public class User
        {
            public int UserID { get; set; }
    
            public string Name { get; set; }
        }
    
        public class UserExtInfo
        {
            //3-生成外键:F_UserID
            public int F_UserID { get; set; }
            [ForeignKey("F_UserID")]
            public virtual User User { get; set; }
        }

    第四种方法:可指定生成的数据库中的列名。

    //方式2的升级版,与导航属性的主键名称相同的字段会自动被标记为外键,然后指定字段对应的数据库中的列名
      public class User
        {
            public int UserID { get; set; }
    
            public string Name { get; set; }
        }
    
        public class UserExtInfo
        {
            //4-生成外键:F_UserID
            [Column("F_UserID")]
            public int UserID { get; set; }
            public virtual User User { get; set; }
        }

    FluentAPI的方法等待补充----------------------

  • 相关阅读:
    OnEraseBkgnd、OnPaint与画面重绘
    .编译ADO类DLL时报错的解决方案
    VC列表框样式
    Codeforces 131D. Subway 寻找环树的最短路径
    Codeforces 103B. Cthulhu 寻找奈亚子
    Codeforces 246D. Colorful Graph
    Codeforces 278C. Learning Languages 图的遍历
    Codeforces 217A. Ice Skating 搜索
    Codeforces 107A. Dorm Water Supply 搜图
    Codeforces 263 D. Cycle in Graph 环
  • 原文地址:https://www.cnblogs.com/farcall/p/4850259.html
Copyright © 2020-2023  润新知