我想在开发时创建项目的Debug.Write记录器。所以我可以在代码配置上这样做:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
Action<string> print = message => Debug.WriteLine(message);
Database.Log =print;
}
但是我想在web.config文件中添加这个作为实体框架部分元素。有没有办法做到这一点?
<interceptors>
<interceptor type="System.Data.Entity.Infrastructure.Interception.DatabaseLogger, EntityFramework">
??????
</interceptor>
</interceptors>
答案 0 :(得分:1)
您可以使用配置文件或基于代码的配置来配置拦截器。
请参阅以下有关如何执行此操作的内容(包括演示):
http://www.entityframeworktutorial.net/entityframework6/database-command-interception.aspx
假设你有以下拦截器
EFCommandInterceptor: IDbCommandInterceptor
<强>配置强>
<entityFramework>
<interceptors>
<interceptor type="EF6DBFirstTutorials.EFCommandInterceptor, EF6DBFirstTutorials">
</interceptor>
</interceptors>
</entityFramework>
<强>代码强>
public class EF6CodeConfig : DbConfiguration
{
public EF6CodeConfig()
{
this.AddInterceptor(new EFCommandInterceptor());
}
}