Kun*_*nal 0 asp.net-mvc multiple-models dbcontext asp.net-mvc-4
我是MVC4框架的新手,并且一直致力于许可应用程序,该应用程序必须为不同的产品使用不同的数据库(每个数据库包含一个产品的少数表 - 所有这些都由专有许可工具生成).我的应用程序应能够支持各种产品上的CRUD功能,因此DbContext每个产品需要与不同型号相关的多个对象.
据我所知,每个这样的DbContext对象都需要Web.config文件中的连接字符串.我正在努力列出(Index.cshtml)各种产品的现有许可证,使用DropDownList控制,每当用户从DropDownList控件中选择不同的产品时,我需要连接到不同的数据库.
任何帮助将受到高度赞赏.谢谢.
据我了解你的问题,核心问题是,当用户从DropDownList中选择不同的产品时,你正在努力连接到不同的数据库.如您所说,是的DbContext对象需要Web.config文件中的连接字符串.您可以在配置中指定多个连接字符串.
您也可以将不同的连接字符串传递给DBContext构造函数.通常,您的DAL /数据访问层或存储库层将从Web.Config/App.config中提取适当的连接字符串,并将其传递给DBContext构造函数.在这里和这里看到类似的方法.
更新:
您不能与多个数据库共享相同的DbContext.每个数据库都需要多个DbContexts.
其他 很少有这样做的,但如果您使用Repostory和单位工作模式,您可以像使用的方法这
您将拥有的每个DbContext,您可以在上下文中与该数据库中的实体集相关联.像下面的东西
public class ProductContext : DbContext
{
public ProductContext ()
: base("connectionStringA")
{
}
public DbSet<Product> Accounts { get; set; }
}
public class LicenceContext : DbContext
{
public LicenceContext ()
: base("connectionStringB")
{
}
public DbSet<Licence> Licenses{ get; set; }
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12305 次 |
| 最近记录: |