EntityFrameWork Code First 多数据库以及自定义字符串的使用+连接字符串加密调用
来源:互联网 发布:魔兽世界tbc数据库 编辑:程序博客网 时间:2024/06/09 22:06
PS:本来第一版发的在编辑器里面直接能截图 结果发现提交 之后图没了我勒个去,然后图的地方就用代码代替了 无奈,看起来比较乱了就
关于使用EF-CodeFirst中多数据库使用 以及 自定义字符串的使用 +连接字符串加密调用
度娘好久都没有发现有资料能直接解决这3个问题的文章
这里就把自己摸索的经验给大家分享一下
不多说直接上代码
ef-cf=EntityFrameWork Code First
1,常规ef-cf引用之后 生成的代码以及config配置 丢出来,怎么生成的这个就自己找 很多
我这里是一个数据库对应一个对应-都是常规的 最后多个数据到一个web里面
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<connectionStrings>
<add name="WorkflowCenterContext" connectionString="Data Source=10.0.126.97;Initial Catalog=WorkflowCenter;Persist Security Info=True;User ID=sa;Password=K2pass!!;MultipleActiveResultSets=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
</configuration>
那么这个web里面的配置很简单 直接拷贝过来,然后在connectstrings里面add就好了 直接看代码
3个数据库的ef
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="Zemt.Process.Web.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
<connectionStrings>
<add name="ZemtProcessContext" connectionString="FBD4EE7756F1E57E31DFB7208A1703E04A6090576F7561ADB44EBABC8B7ED52C87C77B1665C90ADD513C65DC53500F250B51D1BC8CDD4A76884EDD1023FEB55B0E570DD991C0C8334381EB7245594C72DCB8F0DE2D42125BDA18D5C79B1B06D16ECB27E380C391CB7AE3EE7F6A342E5DD638EB077035C5B7DBD0E050EB654EBEF30D4DF9DF8D83D970CD2406B40FD870"
providerName="System.Data.SqlClient" />
<add name="WorkflowCenterContext" connectionString="Data Sourcenitial Catalog=WorkflowCenter;Persist Security Info=True;User ID=sa;PasswoActiveResultSets=True"
providerName="System.Data.SqlClient" />
<add name="CapitaIntranetContext" connectionString="Data Source=;Initial Catalog=CapitaIntranet;Persist Security Info=True;User ID=sa;PctiveResultSets=True"
providerName="System.Data.SqlClient" />
<!--<add name="ZemtProcessContext" connectionString="Data Source=;Initial Catalog=ZemtProcess;Persist Security Info=True;User ID=k2sa;PasswpleActiveResultSets=True"
providerName="System.Data.SqlClient" />
<add name="WorkflowCenterContext" connectionString="Data Source=Initial Catalog=WorkflowCenter;Persist Security Info=True;User ID=k2sa;PasltipleActiveResultSets=True"
providerName="System.Data.SqlClient" />
<add name="CapitaIntranetContext" connectionString="Data Source=;Initial Catalog=CapitaIntranet;Persist Security Info=True;User ID=k2sa;PasspleActiveResultSets=True"
providerName="System.Data.SqlClient" />-->
</connectionStrings>
2,ef-cf里面自定义字符串问题
首先 上面来说 他已经自动生成web配置文件了,从代码中该不好下手
下面是自动生成的数据库代理类
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
namespace Zemt.WorkflowCenter.DataBase
{
public partial class WorkflowCenterContext : DbContext
{
static WorkflowCenterContext()
{
Database.SetInitializer<WorkflowCenterContext>(null);
}
public WorkflowCenterContext()
: base("Name=WorkflowCenterContext")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
}
}
}
当然之前木有看懂这个,所以觉得很难下手,最后看了资料 :base的意思 就是调用父类的构造函数,然后进去看base这函数的定义
[SuppressMessage("Microsoft.Reliability", "CA2000:Dispose objects before losing scope")]
[SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public DbContext(string nameOrConnectionString);
发现base可以直接传连接字符串进去,2种模式 直接传字符串或者传配置节点 也就是这里的name
<connectionStrings>
<add name="ZemtProcessContext" connectionString="FBD4EE7756F1E57E31DFB7208A1703E04A6090576F7561ADB44EBABC8B7ED52C87C77B1665C90ADD513C65DC53500F250B51D1BC8CDD4A76884EDD1023FEB55B0E570DD991C0C8334381EB7245594C72DCB8F0DE2D42125BDA18D5C79B1B06D16ECB27E380C391CB7AE3EE7F6A342E5DD638EB077035C5B7DBD0E050EB654EBEF30D4DF9DF8D83D970CD2406B40FD870"
providerName="System.Data.SqlClient" />
<add name="WorkflowCenterContext" connectionString="Data Sourcalog=WorkflowCenter;Persist Security Info=True;User ID=sa;PasswpleActiveResultSets=True"
providerName="System.Data.SqlClient" />
<add name="CapitaIntranetContext" connectionString="Data Souog=CapitaIntranet;Persist Security Info=True;User ID=sa;PaltipleActiveResultSets=True"
providerName="System.Data.SqlClient" />
那么好说 改下就OK了
public ZemtProcessContext()
: base(CoreConfig.CoreConfigHelper.GetZemtProcessContextConnectString())
{
}
3,关于ef-cf中的配置文件加密
看了1,2功能之后,加密也很简单,直接用一个加密类把字符串加密 然后再解密就好了 直接上图
<add name="ZemtProcessContext" connectionString="FBD4EE7756F1E57E31DFB7208A1703E04A6090576F7561ADB44EBABC8B7ED52C87C77B1665C90ADD513C65DC53500F250B51D1BC8CDD4A76884EDD1023FEB55B0E570DD991C0C8334381EB7245594C72DCB8F0DE2D42125BDA18D5C79B1B06D16ECB27E380C391CB7AE3EE7F6A342E5DD638EB077035C5B7DBD0E050EB654EBEF30D4DF9DF8D83D970CD2406B40FD870"
providerName="System.Data.SqlClient" />
然后解密调用
public ZemtProcessContext()
: base(CoreConfig.CoreConfigHelper.GetZemtProcessContextConnectString())
{
}
以上就是摸索2天+的成功
- EntityFrameWork Code First 多数据库以及自定义字符串的使用+连接字符串加密调用
- EF(EntityFramework)使用Code First连接MySQL数据库详解
- EF(EntityFramework)使用Code First连接Oracle数据库详解
- 关于EntityFramework中连接字符串的说明
- 关于EntityFramework中连接字符串的说明
- EntityFramework 6.0< Code First > 连接 Mysql数据库
- EntityFramework 6.0< Code First > 连接 Mysql数据库
- Dataset以及连接字符串的使用
- vs2013连接mysql数据库并使用EntityFramework技术db first
- EntityFramework连接串的调用时传入
- 自定义字符串加密
- 加密连接字符串
- 连接字符串加密
- 连接字符串的加密和解密
- 数据库连接字符串的处理方法!加密解密连接字符串。
- 数据库连接字符串的处理方法!加密解密连接字符串。
- ASP.Net MVC连接MySQL和Code First的使用
- 自定义连接字符串
- Java加密技术(二)——对称加密算法DES&AES
- Spring自带缓存配置及Ehcache缓存
- 微信小程序开发初体验
- Android 系列 6.17使用Attributes和TextWatcher接口约束EditText值
- Java加密技术(三)——PBE算法
- EntityFrameWork Code First 多数据库以及自定义字符串的使用+连接字符串加密调用
- 【STL】 poj1208&&UVa101 The Blocks Problem (不定长数组vector的应用)
- MSSQL手注语句
- Spark RDD之Dependency
- JAVA 基本数据类型长度
- halcon学习之仿射变换1
- [BZOJ2223][Coci 2009]PATULJCI(整体二分+bit)
- CSS3初步
- Opencv学习笔记(九)光流法