大致两种方案
因为EF自动生成的 DbContext 类 【手动更改此文件可能导致应用程序出现意外的行为。如果重新生成代码,将覆盖对此文件的手动更改。】所以不能对原生类进行更改,那么就有两种方案
方案1: 通过 partial 关键字的特性重写构造函数,并封装加密类(外加封装dll加密混淆哦),安全性极高。参考博客【 EF连接字符串加密及封装】
方案2: 修改T4生成规则。参考博客 【EF数据库连接字符串加密】
注意事项
不管用什么算法加密字符串,都需要把需要加密的串中 " 更改为单引号!!
比如
metadata=res://*/Models.AbxPlatform.csdl|res://*/Models.AbxPlatform.ssdl|res://*/Models.AbxPlatform.msl;provider=System.Data.SqlClient;provider connection string="datasource=.;initial catalog=AbxPlatform;persist security info=True;user id=sa;password=123456;MultipleActiveResultSets=True;App=EntityFramework"
更改为
metadata=res://*/Models.AbxPlatform.csdl|res://*/Models.AbxPlatform.ssdl|res://*/Models.AbxPlatform.msl;provider=System.Data.SqlClient;provider connection string=';data source=.;initial catalog=AbxPlatform;persist security info=True;user id=sa;password=123456;MultipleActiveResultSets=True;App=EntityFramework';