EF中的配置

  EF中的配置有许多,在这里只介绍需要手动配置的几个:

  连接字符串

<connectionStrings>
    <add name="CloudServiceDbContext"
         connectionString="Data Source=localhost;port=3306;Initial Catalog=dbCloudService;user id=root;password=111111"
         providerName="MySql.Data.MySqlClient"/>
  </connectionStrings>

  拦截器

  拦截器允许EF在执行数据库操作时运行一些附加的逻辑,下面的代码便是在DatabaseLogger中添加了一个拦截器用以记录所有的数据库操作。

<interceptors> 
  <interceptor type="System.Data.Entity.Infrastructure.Interception.DatabaseLogger, EntityFramework"> 
    <parameters> 
      <parameter value="C:\Temp\LogOutput.txt"/> //Log输出文件
      <parameter value="true" type="System.Boolean"/> //文件存在时以Append的方式写文件
    </parameters> 
  </interceptor> 
</interceptors>

  Database Initializers

  CodeFirst默认使用CreateDatabaseIfNotExits初始化,而context有一个disableDatabaseInitialization属性用来配置不使用数据库初始化。示例如下:

<contexts> 
  <context type=" Blogging.BlogContext, MyAssembly" disableDatabaseInitialization="true" /> 
</contexts>

  也可以配置自定义的初始化类(无参时去掉parameters节点即可),示例如下:

<contexts> 
  <context type=" Blogging.BlogContext, MyAssembly"> 
    <databaseInitializer type="Blogging.MyCustomBlogInitializer, MyAssembly"> 
      <parameters> 
        <parameter value="MyConstructorParameter" /> 
      </parameters> 
    </databaseInitializer> 
  </context> 
</contexts>

  泛型数据库初始化配置,使用CodeFrist迁移时,配置数据库自动迁移到最新,示例如下:

<contexts> 
  <context type="Blogging.BlogContext, MyAssembly"> 
    <databaseInitializer type="System.Data.Entity.MigrateDatabaseToLatestVersion`2[[Blogging.BlogContext, MyAssembly], [Blogging.Migrations.Configuration, MyAssembly]], EntityFramework" /> 
  </context> 
</contexts>

  还有一个比较重要的配置就是provider的配置,而一般来说都可以通过Nuget安装相关库便自动添加到配置文件中,如Mysql下添加provide时,Nuget中输入以下命令:

PM> install-package Mysql.Data.Entity

  便可将相应的库引用到项目中,并且将provider添加到配置文件中。

 

posted @ 2015-06-02 17:04  magic249  阅读(546)  评论(0编辑  收藏  举报