zoukankan      html  css  js  c++  java
  • 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的方法等待补充----------------------

  • 相关阅读:
    .net中使用事务 dodo
    dnn中NULL值的处理 dodo
    通过sql server的作业调度+存储过程来实现系统定时任务的方法 dodo
    使用With...End With dodo
    ASP.NET页面中使用SolpartMenu控件 dodo
    浅解web打印 dodo
    WEB打印大全(转) dodo
    AjaxMethod未定义原因 dodo
    CommandEventArgs.CommandArgument 属性 dodo
    在用VS.NET2003 新建项目时系统提示 autometion服务器无法创建对象 这是什么问题? dodo
  • 原文地址:https://www.cnblogs.com/farcall/p/4850259.html
Copyright © 2011-2022 走看看