实体框架和Unity DI中的模拟

问题描述

我的ASP.NET MVC Web应用程序需要模拟连接到数据库。我使用的是Form Authentication而不是Windows Authentication。我还在Trusted_Connection=True中设置了connection string。如果在Application Pool中设置了模拟身份,则可以使用此方法,但是我需要以编程方式进行设置。我找到了this的编程方式(不是通过代码Application Pool)。不幸的是,我使用Entity FrameworkUnity注入DbContext对象。是否可以在Entity Framework中全局模拟Unity连接?

此短代码不起作用

public class DataContext : DbContext
{
    readonly Impersonator impersonator;
    public DataContext()
        :base(DataConfigurationManager.ConnectionString)
    {
        Configuration.LazyLoadingEnabled = true;
        Configuration.ProxyCreationEnabled = false;
        Database.CommandTimeout = 120;

        impersonator = new Impersonator("user","domain","password");
    }

    protected override void dispose(bool disposing)
    {
        impersonator.dispose();
        base.dispose(disposing);
    }
    
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        Database.Setinitializer<DataContext>(null);
        base.OnModelCreating(modelBuilder);
    }

    public DbSet<Person> Persons { get; set; }
}

UnityConfig

public static void RegisterTypes(IUnityContainer container)
{
    container.RegisterType<DataContext>();
    container.RegisterType<IPersonService,PersonService>();
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)