2017-09-24 32 views

回答

0

您应该查看实体框架,它可以让您做到想。特别注意代码第一种方法。

您还可以指定该数据库的名称作为上下文类的基本构造函数的参数。如果您指定了数据库名称参数,Code First将使用您在本地SQLEXPRESS数据库服务器的基础构造函数中指定的名称创建一个数据库。例如,Code First将为以下上下文类创建一个名为MySchoolDB的数据库。

更多细节可以在这里

http://www.entityframeworktutorial.net/code-first/database-initialization-in-code-first.aspx

namespace SchoolDataLayer 
    { 
      public class Context: DbContext 
      { 
      public Context(): base("MySchoolDB") 
      { 

      } 
      } 
    } 
+0

非常感谢:D – HeroOfSkies

0

可以使用依赖注入模式与Autofac发现在运行时加载的 数据库。

More details here

的MVC控制器:

public HomeController: Controller 
{ 
private readonly IDataAccessLayer _layer; 
public HomeController(IDataAccessLayer Layer) 
{ 
    this._layer = layer; 
    _layer.StartUpDatabase(); 
} 

} 

的IDataAccessLayer接口:

public interface IDataAccessLayer 
{ 
Task StartUpDatabase(); 
} 

的DataAccessLayer类:

public DataAccessLayer: IDataAccessLayer 
{ 

public async Task StartUpDatabase() 
{ 
//Try to get a connection handle of the SQL Server database 
} 

} 

而在Global.asax.cs中的文件,注册Autofac的依赖关系。

var builder = new ContainerBuilder(); 
builder.RegisterType<DataAccessLayer>().As<IDataAccessLayer>(); 
var container = builder.Build(); 
相关问题