C# 在我的模型中使用两个不同的数据库-构造函数崩溃
我有一个为单个数据库工作的项目。现在我需要让它与具有相同数据结构的第二个(在同一个项目中)一起工作。因此,我使用相同的模型,并试图在调用我的数据上下文类时传入数据连接名称。很遗憾,我收到以下错误: 无法构造类型字符串。您必须配置 容器来提供此值 以下是我尝试的代码:C# 在我的模型中使用两个不同的数据库-构造函数崩溃,c#,asp.net,asp.net-mvc,unity-container,datacontext,C#,Asp.net,Asp.net Mvc,Unity Container,Datacontext,我有一个为单个数据库工作的项目。现在我需要让它与具有相同数据结构的第二个(在同一个项目中)一起工作。因此,我使用相同的模型,并试图在调用我的数据上下文类时传入数据连接名称。很遗憾,我收到以下错误: 无法构造类型字符串。您必须配置 容器来提供此值 以下是我尝试的代码: public UniversityContext(string context) : base(context){ } 当我寻找答案时,我找到了那个错误的答案,它推荐使用一个无参数构造函数。我试过了
public UniversityContext(string context)
: base(context){
}
当我寻找答案时,我找到了那个错误的答案,它推荐使用一个无参数构造函数。我试过了,但还是一样的问题
这里是无参数构造函数:
public UniversityContext()
: base("UniversityConnection")
{
}
public UniversityContext(string context)
: base(context)
{
}
如果有关系,我使用的是Unity。Unity会自动尝试使用最贪婪的构造函数。在您的情况下,这是:
public UniversityContext(string context)
您可以使用注入构造函数对此进行配置,而不会看到类似以下内容的代码:
container.RegisterType<UniversityContext>(
new InjectionConstructor("UniversityContext"));
container.RegisterType(
新注入构造函数(“UniversityContext”);
Hutchonoid,谢谢您的回复,但是我应该把注入构造函数放在哪里?我怎样才能得到它呢?我会根据不同的连接而改变。顺便说一句,我更新了一点原始帖子(更新了连接名)。@DJBLO没问题,我通常有一个引导程序来配置所有注册的类型。您可以从web.config中读取该值,也可以根据您的需求在运行时确定该值。这是一篇好文章: