entity framework自动生成数据库外键“表名_外键”的解决方案

简介:

今天在尝试使用EF的Code First功能的时候,发现EF自动生成的数据库中表字段不是自己想要的,因为一般来讲,数据库表中的外键,我们希望它的名称跟它关联的表的主键名称相同。但是EF生成的外键字段却是“被关联的表名_主键名”(如图1所示)。这个很奇怪。

图1    被关联的表名_主键名的字段

下面代码是数据库表对应的实体类代码。

复制代码
 1     public class UserInfo
 2     {
 3         [Key]
 4         public int UserID { get; set; }
 5         public string UserName { get; set; }
 6         public string Password { get; set; }
 7         public int UseState { get; set; }
 8         public string Email { get; set; }
 9         public DateTime AddTime { get; set; }
10         public int AddUser_ID { get; set; }
11         public string ImgUrl{ get; set; }
12         public virtual UserType UserTypes { get; set; }
13     }
复制代码

如果不想他生成的外键字段是“被关联的表名_主键名”,解决办法是:在上面的实体类里面多加一个UserTypeID的属性就行了。修改后的代码如下所示。

复制代码
 1     public class UserInfo
 2     {
 3         [Key]
 4         public int UserID { get; set; }
 5         public int UserTypeID { get; set; }
 6         public string UserName { get; set; }
 7         public string Password { get; set; }
 8         public int UseState { get; set; }
 9         public string Email { get; set; }
10         public DateTime AddTime { get; set; }
11         public int AddUser_ID { get; set; }
12         public string ImgUrl{ get; set; }
13         public virtual UserType UserTypes { get; set; }
14     }
复制代码

 

 

 


作者:kissazi2 
出处:http://www.cnblogs.com/kissazi2/ 
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

转载:http://www.cnblogs.com/kissazi2/archive/2013/01/10/2855380.html

目录
相关文章
|
4月前
|
存储 关系型数据库 MySQL
MYSQL数据库-表的约束
MYSQL数据库-表的约束
|
8月前
|
Java 数据库
【数据库】Java实体类的属性类型与数据库表字段类型对应表
在这里对数据库的各个字段和java中的实体类属性类型做一个简单的总结,其实网上大多都有相关的文章,我也是在这里记录一下,以后方便自己查看。
131 0
|
10月前
|
SQL Oracle Java
数据库三大范式、ER图与实体类、外键约束与级联操作你了解多少?(上)
数据库三大范式、ER图与实体类、外键约束与级联操作你了解多少?
345 0
|
10月前
|
SQL 存储 关系型数据库
数据库三大范式、ER图与实体类、外键约束与级联操作你了解多少?(下)
数据库三大范式、ER图与实体类、外键约束与级联操作你了解多少?
248 0
|
SQL 缓存 搜索推荐
Gorm学习(三)基础:迁移(数据库建表以及字段设置)
在项目开发中,我们可能会随时调整声明的模型,比如添加字段和索引,使用 GORM 的自动迁移功能,可以始终让我们的数据库表结构保持最新。
875 0
Gorm学习(三)基础:迁移(数据库建表以及字段设置)
|
存储 关系型数据库 MySQL
MySQL数据库约束与表的设计
本文主要介绍MySQL数据库中一些常用的约束,以及表的设计方法。
109 0
MySQL数据库约束与表的设计
|
SQL 数据库 数据库管理
Sqlite升级时向已有表中增加字段
Sqlite数据库升级时,我们经常会遇到给已有表中增加字段的操作。一般来说,**给已有表中增加字段**是数据库操作中的基操,没必要再专门写篇blog记录的,但是sqlite对SQL语句支持的不够彻底,比方说这次我们用到的"ALTER TABLE"命令。
|
SQL 数据库
编写SQL为数据库某一字段添加外键约束
编写SQL为数据库某一字段添加外键约束
87 0
编写SQL为数据库某一字段添加外键约束
|
XML 数据库 数据格式
数据库报错!外键问题。
数据库报错!外键问题。
72 0
|
关系型数据库 MySQL 数据库
MySQL初级篇——数据库中表的主键、外键及常用约束
MySQL初级篇——数据库中表的主键、外键及常用约束