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     }
复制代码

 本文转自陈哈哈博客园博客,原文链接http://www.cnblogs.com/kissazi2/archive/2013/01/10/2855380.html如需转载请自行联系原作者

kissazi2

相关文章
|
6月前
|
运维 监控 关系型数据库
AI 时代的 MySQL 数据库运维解决方案
本文探讨了大模型与MySQL数据库运维结合所带来的变革,介绍了构建结构化运维知识库、选择合适的大模型、设计Prompt调用策略、开发MCP Server以及建立监控优化闭环等关键步骤。通过将自然语言处理能力与数据库运维相结合,实现了故障智能诊断、SQL自动优化等功能,显著提升了MySQL运维效率和准确性。
556 18
|
8月前
|
Cloud Native 关系型数据库 分布式数据库
阿里云PolarDB与沃趣科技携手打造一体化数据库解决方案,助推国产数据库生态发展
阿里云瑶池数据库与沃趣科技将继续深化合作,共同推动国产数据库技术的持续创新与广泛应用,为行业生态的繁荣注入更强劲的技术动力。
阿里云PolarDB与沃趣科技携手打造一体化数据库解决方案,助推国产数据库生态发展
|
7月前
|
运维 监控 关系型数据库
AI 时代的 MySQL 数据库运维解决方案
本方案将大模型与MySQL运维深度融合,构建智能诊断、SQL优化与知识更新的自动化系统。通过知识库建设、大模型调用策略、MCP Server开发及监控闭环设计,全面提升数据库运维效率与准确性,实现从人工经验到智能决策的跃迁。
830 27
|
6月前
|
SQL 安全 关系型数据库
数据库安全管理新范式:DBKEEPER一体化数据库权限管控堡垒机解决方案
在数字化时代,数据库安全至关重要。DBKEEPER提供一站式数据库安全访问与权限管控解决方案,支持多种数据库,具备精细化权限管理、数据脱敏、高危操作拦截、全面审计等功能,助力企业实现智能、安全的数据治理,满足金融、医疗、互联网等行业合规需求。选择DBKEEPER,让数据库安全管理更高效!
数据库安全管理新范式:DBKEEPER一体化数据库权限管控堡垒机解决方案
|
10月前
|
关系型数据库 MySQL 数据库连接
docker拉取MySQL后数据库连接失败解决方案
通过以上方法,可以解决Docker中拉取MySQL镜像后数据库连接失败的常见问题。关键步骤包括确保容器正确启动、配置正确的环境变量、合理设置网络和权限,以及检查主机防火墙设置等。通过逐步排查,可以快速定位并解决连接问题,确保MySQL服务的正常使用。
1773 82
|
9月前
|
负载均衡 算法 关系型数据库
大数据新视界--大数据大厂之MySQL数据库课程设计:MySQL集群架构负载均衡故障排除与解决方案
本文深入探讨 MySQL 集群架构负载均衡的常见故障及排除方法。涵盖请求分配不均、节点无法响应、负载均衡器故障等现象,介绍多种负载均衡算法及故障排除步骤,包括检查负载均衡器状态、调整算法、诊断修复节点故障等。还阐述了预防措施与确保系统稳定性的方法,如定期监控维护、备份恢复策略、团队协作与知识管理等。为确保 MySQL 数据库系统高可用性提供全面指导。
|
算法 安全 数据库
数据库死锁的解决方案有哪些?
【10月更文挑战第28天】数据库死锁是数据库管理中的一个常见问题
629 71
|
12月前
|
安全 网络安全 数据库
Access denied for user ‘qingtingstpublic’@’171.213.253.88’ (using password: YES)宝塔数据库远程无法连接-宝塔数据远程无法连接的正确解决方案-优雅草央千澈-问题解决
Access denied for user ‘qingtingstpublic’@’171.213.253.88’ (using password: YES)宝塔数据库远程无法连接-宝塔数据远程无法连接的正确解决方案-优雅草央千澈-问题解决
244 28
|
运维 监控 关系型数据库
数据库管理中的自动化运维:挑战与解决方案
数据库管理中的自动化运维:挑战与解决方案

热门文章

最新文章