EntityFrameWork Code First 多数据库以及自定义字符串的使用+连接字符串加密调用

PS:本来第一版发的在编辑器里面直接能截图 结果发现提交 之后图没了我勒个去,然后图的地方就用代码代替了 无奈,看起来比较乱了就


关于使用EF-CodeFirst中多数据库使用 以及 自定义字符串的使用 +连接字符串加密调用

度娘好久都没有发现有资料能直接解决这3个问题的文章

这里就把自己摸索的经验给大家分享一下

不多说直接上代码

ef-cf=EntityFrameWork Code First


1,常规ef-cf引用之后 生成的代码以及config配置 丢出来,怎么生成的这个就自己找 很多

我这里是一个数据库对应一个对应-都是常规的 最后多个数据到一个web里面



 
   


 
 
          providerName="System.Data.SqlClient" />
 

 
   
   
     
   

 




那么这个web里面的配置很简单 直接拷贝过来,然后在connectstrings里面add就好了 直接看代码

3个数据库的ef



   
   


   
     

   
 
 
         providerName="System.Data.SqlClient" />
          providerName="System.Data.SqlClient" />
          providerName="System.Data.SqlClient" />
   
 


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(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

 
         providerName="System.Data.SqlClient" />
          providerName="System.Data.SqlClient" />
          providerName="System.Data.SqlClient" />


那么好说 改下就OK了


    public ZemtProcessContext()
            : base(CoreConfig.CoreConfigHelper.GetZemtProcessContextConnectString())
        {
        }


3,关于ef-cf中的配置文件加密 

看了1,2功能之后,加密也很简单,直接用一个加密类把字符串加密 然后再解密就好了 直接上图


       providerName="System.Data.SqlClient" />


然后解密调用


  public ZemtProcessContext()
            : base(CoreConfig.CoreConfigHelper.GetZemtProcessContextConnectString())
        {
        }

以上就是摸索2天+的成功



你可能感兴趣的:(EntityFrameWork Code First 多数据库以及自定义字符串的使用+连接字符串加密调用)