EF中外键重命名,打破原先的约束规则

本人建议玩code frist的人多用用System.ComponentModel.DataAnnotations和System.ComponentModel.DataAnnotations.Schema这个里面的特性来写实体类

现在进入正题,怎么打破原先外键的命名规则呢

[Table("sys_UserInfo")]
    public partial class UserInfo
    {
        public UserInfo()
        {
            this.DelFlag = false;
            //this.R_UserInfo_Role = new R_UserInfo_Role();

        }
        [Key]//主键
        [Column("ID")]
        public int ID { get; set; }
        [Column("UName"), StringLength(20)]
        public string UName { get; set; }
        [Column("Pwd"), StringLength(20)]
        public string Pwd { get; set; }
        [Column("Phone"), StringLength(40)]
        public string Phone { get; set; }
        [Column("Mail"), StringLength(40)]
        public string Mail { get; set; }
        [Column("SubTime")]
        public System.DateTime SubTime { get; set; }
        [Column("LastModifiedOn")]
        public System.DateTime LastModifiedOn { get; set; }
        [Column("DelFlag")]
        public bool DelFlag { get; set; }

        [Column("R_RoleID")]//虽然在下面定义,但是可以重名
        public int RoleID111 { get; set; }
        [ForeignKey("RoleID111")]//指定上面那个是外键的属性
        public virtual Role Role { get; set; }

    }

如同我注释那样,写外键的时候可以利用ForeignKey这个特性指定一个外键的属性,然后指定的那个属性再用Column重命名这个列名。不需要在写映射,而且看的时候也会比较直观,也容易维护。

[Table("sys_Role")]
    public partial class Role
    {
        public Role()
        {
            this.DelFlag = false;
            this.UserInfo = new HashSet<UserInfo>();
        }
        [Key]//主键
        [Column("ID")]
        public int ID { get; set; }
        [Column("RoleName"), StringLength(20)]
        public string RoleName { get; set; }
        [Column("DelFlag")]
        public bool DelFlag { get; set; }
        [Column("SubTime")]
        public System.DateTime SubTime { get; set; }
        [Column("UserInfoID")]
        public virtual ICollection<UserInfo> UserInfo { get; set; }
    }

然后是数据库中的生成

时间: 2024-10-24 21:47:57

EF中外键重命名,打破原先的约束规则的相关文章

小例子: 语录文件重命名(mv + rename)

分析: 语录下载时是按时期打包的; 全部解压到一个文件夹时,关于编号问题,操作起来很不方便; 特此给语录重新编号; 无需在意原先时期编号问题; 重新建立惯性思维模式; 统计语录文件总个数用来表示循环中的前缀变量 -> 重命名规则: 保留源文件的信息到文本中 给音频文件添加前缀 命名时名字的顺序不需要固定 每一个音频是一个单独的故事,虽然时期不同到不用让时期保持连贯,打破固有思维,重新建立视听循环. 从001开始到文件的个数总和结束 eg: audio.mp3 -> 001.audio.mp3

Qt之控件重命名

现在的软件很多都支持双击重命名的操作,就像在windows下对某个文件夹重命名一样(如下图) 不巧之前也遇到过类似的设计问题,不过是在界面上对某个控件.现在整理一下,控件就用QPushButton来代替. 对一个Button双击重命名,其实总结起来就是一下几点: 1.鼠标双击开始重命名,也就是一个QLineEdit完全覆盖之前的Button 2.鼠标点击其他区域,退出重命名状态,保留之前的名字 3.按下键盘的回车键,完成重命名操作,显示新的名字 下面开始一步一步来. 首先第一点.一个Button

iOS项目的完整重命名方法图文教程

链接地址:http://blog.csdn.net/abc4715760/article/details/42404039 前言:在iOS开发中,有时候想改一下项目的名字,都会遇到很多麻烦.直接改项目名吧,XCODE又不会帮你改所有的名字.总是有很多文件.文件夹或者是项目设置的项.而且都是不能随便改的,有时候改着改着,编译不了.所以各位重命名项目时,记得先备份好一份噢.本文我会介绍一种方法,是我自己参考了很多资料得出的总结. 为什么说是完整呢?因为改名之后,你不会再看到任何有关于之前的项目名字.

oracle重命名数据库

这个要分好几步来作业 以ORACLE10g为例,举例说明更改SID名称的过程.假如数据库的SID叫testdb,现在改成orcl,有以下6个步骤: 1.停止所有的oracle服务 1.1.oracle的相关服务都以oracle为前缀,有以下几个: 2.修改初始化文件,将instance_name参数值设置为新的SID名称: 2.1.如果没有可编辑的PFILE文件,可以使用CREATE PFILE FROM SPFILE命令创建.将初始化文件参数的 以下内容: db_name="testdb&qu

myeclipse 重命名项目名后不能访问

myeclipse 重命名项目名后不能访问 由于处于命名的规范:最近修改了一个项目的项目名,但发现修改后的项目名不能访问,而输入原先的项目名还是可以访问的, 然后去tomcat下看了下,发现还是原来的项目名那就需要更改tomcat下根目录的文件名: 项目上右击鼠标-->Properties-->MyEclipse-->Web-->Content Root-->Web content-root下改成你想要的新的项目名即可 这里也可将/cxfVSsshVSjbpm改为/,那么该项

DataFrame重命名单个column

由于当时的需求我的a表和b表的公共键名称不一样 例如这个 那么我就可以进行重命名: df1 = DataFrame(np.arange(10).reshape((5, 2)), columns=['a', 'b']) print(df1) df1.rename(columns={'a':'dddd'}, inplace=True) print(df1)

转 iOS项目的完整重命名方法图文教程

前言:在iOS开发中,有时候想改一下项目的名字,都会遇到很多麻烦.直接改项目名吧,XCODE又不会帮你改所有的名字.总是有很多文件.文件夹或者是项目设置的项.而且都是不能随便改的,有时候改着改着,编译不了.所以各位重命名项目时,记得先备份好一份噢.本文我会介绍一种方法,是我自己参考了很多资料得出的总结. 为什么说是完整呢?因为改名之后,你不会再看到任何有关于之前的项目名字. 本文会把一个项目名叫“test233333333”改成“test”. 1)打开项目: 以上是目前的项目结构. 2)选中项目

(转)Windows重启延迟删除,重命名技术原理

所谓重启延迟删除技术,就是在操作系统启动前删除或者替换文件! 说起重启延迟删除,大家可能都很陌生,但是实际上,该功能已经被各种软件所采用:如安装Windows 补丁程序(如:HotFix.Service Pack).安装Office 补丁程序.反病毒软件的的清除.软件的升级,文件强制删除工具软件等等等等…… 本文将首先介绍延迟删除/重命名的工作机制,然后介绍如何使用这个功能维护你的系统. 一. 什么是重启延迟删除/重命名 很多人可能都碰到过下面的一种情形:在安装某个软件的时候,安装程序正在初始化

iOS项目的完整重命名方法

在iOS开发中,有时候想改一下项目的名字,都会遇到很多麻烦.直接改项目名吧,XCODE又不会帮你改所有的名字.总是有很多文件.文件夹或者是项目设置的项.而且都是不能随便改的,有时候改着改着,编译不了.所以各位重命名项目时,记得先备份好一份噢.本文我会介绍一种方法,是我自己参考了很多资料得出的总结. 为什么说是完整呢?因为改名之后,你不会再看到任何有关于之前的项目名字. 本文会把一个项目名叫"test233333333"改成"test". 1)打开项目: 以上是目前的