我有一个"数据库参考"带有这些信息的表格
每家公司都有自己的连接字符串来访问自己的数据库。然后我有x个数据库(相同的结构),一个由公司。
我必须这样做:
我很难使用会话变量(我知道更少的状态),但我不想在2次通话之间保留任何内容。
我创建了几个带有应用程序变量的解决方案,但就我而言,它不是正确的方法。
通过filter属性,但在这种情况下,我必须能够将值从属性发送到控制器,但之前调用构造函数。
你可以帮帮我吗?
谢谢,
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
var container = new UnityContainer();
container.RegisterType<DbContext, DbRefernceAdministrationContext>(new HierarchicalLifetimeManager());
container.RegisterType<DbContext, CompanyContext>(new HierarchicalLifetimeManager());
container.RegisterType<ICompanyRepository, CompanyRepository>(new InjectionConstructor(new CompanyContext()));
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
答案 0 :(得分:0)
将所有数据库连接字符串信息移至app.config。
然后通过
从查询字符串中选择数据库引用 config.Routes.MapHttpRoute(
name: "DbRefApi",
routeTemplate: "api/{controller}/{databaseref}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
通过
获取活动连接字符串public string GetActiveConnString()
{
//Read from app.config file
//create an active repository using connection string
}