本人建议玩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; }
}

然后是数据库中的生成

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

  1. Alt+Shift+R组合键,用来在一个java文件中批量的重命名变量。

    myeclipse和eclipse集成编译软件,都提供了一个快捷键用来批量重命名变量:Alt+Shift+R组合键,用来在一个java文件中批量的重命名变量.扩展知识:如果想要重命名文件名,又不想手动 ...

  2. win10用户文件夹重命名,启用administrator账户,删除文件夹时提示找不到该项目

    这一切都源自楼主洁癖一般的强迫症. 楼主在重置win10后的安装过程中用microsoft账户登录的电脑,发现用户文件夹名称怪怪的,于是想重命名一下.楼主发现重命名用户文件夹并不能简单地用F2搞定,于 ...

  3. 【Java EE 学习 22 上】【文件上传】【目录打散】【文件重命名】

    1.文件上传概述 (1)使用<input type="file">的方式来声明一个文件域. (2)表单提交方式一定要是post方式才行 (3)表单属性enctype 默 ...

  4. MyEclipse中的重命名

    我们要重命名一个函数或变量时,如果手工改会很耗时而且可能会有些遗漏,造成编译错误.这个时候可以在变量或函数定义处,按下MyEclipse的Alter + SHIF + R 重命名,然后按下Enter键 ...

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

    原文链接:http://www.cocoachina.com/ios/20150104/10824.html iOS项目的完整重命名方法图文教程 前言:在iOS开发中,有时候想改一下项目的名字,都会遇 ...

  6. java package 重命名时注意事项

    如果要对包重命名时,需要关注以下方面: 1. java关联类里的重命名(这个一般通过开发工具会自动修正,如eclipse) 2.配置文件,如原先配置为com.abc,现在更名为com.abc123,这 ...

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

    所谓重启延迟删除技术,就是在操作系统启动前删除或者替换文件! 说起重启延迟删除,大家可能都很陌生,但是实际上,该功能已经被各种软件所采用:如安装Windows 补丁程序(如:HotFix.Servic ...

  8. SQL Server使用sp_rename重命名约束注意事项

    在SQL Server中,我们可以使用sp_name这个系统存储过程重命名数据库中对象的名称. 此对象可以是表. 索引. 列. 别名,约束等数据类型(具体可以参考官方文档).上周在使用这个函数重构数据 ...

  9. Linux编程 5 (目录重命名与移动mv,删除文件rm,目录创建mkdir删除rmdir,查看file,cat,more,tail,head)

    一. 文件重命名与移动(mv) 在linux中,重命名文件称为移动(moving).mv命令可以将文件和目录移动到另一个位置或重新命名. 1.1 使用mv重命名 下面在/usr/local下面创建一个 ...

随机推荐

  1. 【网络与系统安全】利用burpsuite进行重放攻击

    重放攻击的定义 所谓重放攻击就是攻击者发送一个目的主机已接收过的包,来达到欺骗系统的目的,主要用于身份认证过程. 原理 重放攻击的基本原理就是把以前窃听到的数据原封不动地重新发送给接收方.如果攻击者知 ...

  2. get_linux_ip_info.sh 获取ip地址

    linux 获取ip地址 get_linux_ip_info.sh #!/bin/bash #/告诉使用者,这程序的用户是从ipconfig 命令中获取IP地址 echo "该程序是从命令中 ...

  3. PYTHON调用C接口(基于Ctypes)实现stein算法最大公约数的计算

    相关环境配置 mingw,选择相应的32位.64位的版本,主要用于编译动态链接库dll文件,可用vs替代,这里我选择轻量级的mingw windows64位地址:https://sourceforge ...

  4. Android Weekly Notes Issue #255

    Android Weekly Issue #255 April 30th, 2017 Android Weekly Issue #255 本期内容包括: 一种在RxJava中显示loading/con ...

  5. 《CSS权威指南(第三版)》---第六章 文本属性

    本章主要的内容是: 1.文本缩进: text-indent.行内元素无法缩进,一般用左内边距或外边距来创造这种效果. 2.文本对齐:text-align .只应用于块状元素. 3.行高:一般line- ...

  6. <算法笔记>关于快速排序的算法优化排序(顺便给百度百科纠个错)

    快速排序是排序算法之中的基本中的基本,虽然越来越多的接口函数将快速排序“完美的封装了起来”,比如C++中的qsort或者<algorithm>中的sort(与stable_sort相对应) ...

  7. loj#2269. 「SDOI2017」切树游戏

    还是loj的机子快啊... 普通的DP不难想到,设F[i][zt]为带上根玩出zt的方案数,G[i][zt]为子树中的方案数,后面是可以用FWT优化的 主要是复习了下动态DP #include< ...

  8. matlab程序计时

    t1=datetime(); %程序 t2=datetime() totaltime=t2-t1; disp(t2-t1); 或者: tic %代码块 toc disp(['运行时间: ',num2s ...

  9. tensorflow kmeans 聚类

    iris: # -*- coding: utf-8 -*- # K-means with TensorFlow #---------------------------------- # # This ...

  10. EmbarassedBird网站需求规格说明书

    网站概述 一个特别的在线问答游戏 用户环境 小屏手机, 中等屏幕平板电脑, 大屏显示器 使用chrome浏览器将有全部功能, 其他浏览器完备的基本功能 编程语言&开发环境 HTML/CSS/J ...