【发布时间】:2016-05-23 16:13:01
【问题描述】:
我正在使用 Code First EntityFramework 构建一个 asp.Net MVC 应用程序。我正在使用 Unity Container 的依赖注入。
我有一个这样的上下文类
public partial class MyContext : DbContext
{
public MyContext()
: base("name=MyConnString")
{
Database.SetInitializer<MyContext>(null);
}
}
这样的存储库类:
public class Repository
{
public Repository(DbContext dataContext)
{
}
}
在 Bootstrapper 类中我有这个:
container.RegisterType<DbContext, MyContext>("DbContext",new HierarchicalLifetimeManager());
当我运行应用程序时,它会抛出这个异常:
当前类型 System.Data.Common.DbConnection 是抽象类 > 无法构造。您是否缺少类型映射?
说明:在执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.InvalidOperationException:当前类型 System.Data.Common.DbConnection 是抽象类,无法构造。您是否缺少类型映射?
来源错误:
在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常起源和位置的信息。 当前类型 System.Data.Common.DbConnection 是一个抽象类,无法构造。您是否缺少类型映射?
说明:在执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.InvalidOperationException:当前类型 System.Data.Common.DbConnection 是抽象类,无法构造。您是否缺少类型映射?
来源错误:
在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常起源和位置的信息。
经过研究发现这个错误是因为Unity默认使用了最冗长的构造函数。
我需要使用第二个构造函数,但我不知道如何配置 Unity
你有什么想法吗?
【问题讨论】:
标签: c# asp.net-mvc entity-framework unity-container