首先是代码中的多个上下文和多个数据库

时间:2014-01-03 05:18:49

标签: sql-server entity-framework ef-code-first sql-server-ce ef-migrations

我想要两个数据库和两个上下文。一个用于基于 ASP.NET MVC 的项目(使用 SQL Server ),一个用于基于 Windows应用程序的项目管理工具(使用 SQL服务器CE )。 我的解决方案结构如下:

MySolution
--DataAccessLayer (Class Library Project)
--ModelProject (Class Library Project)
--MyWebApplication (ASP.NET MVC Project with SQL Server)
--MyAdminTools (Windows Application Project with SQL Server CE)

我将POCO类文件存储在ModelProject中。一些POCO类在两个数据库中共享,所以我创建了DataAccessLayerProject,它有两个上下文,它们都是从DbContext继承的,我在构造函数中设置了连接字符串,如下所示:

public MyWebApplicationContext()
            : base("WebDB")
    {
    }
public AdminToolsContext()
            : base("AdminToolsDB")
    {
    }

这是连接字符串:

<add name="WebDB" connectionString="Data Source=localhost;Initial Catalog=WebDB;persist security info=True;user id=sa;password=123;" providerName="System.Data.SqlClient" />
<add name="AdminToolsDB" providerName="System.Data.SqlServerCe.4.0" connectionString="Data Source=|DataDirectory|\AdminToolsDB.sdf" />

我还使用this post guidance

逐步启用我的上下文的迁移

现在我有两个问题:

首先:这是单独项目中商店项目和解决方案的正确结构吗? (单独项目中的上下文和模型)

第二:在上述步骤中,除SQL Server CE数据库外,一切正常。 当我为我的SQL Server CE上下文运行update-database时,程序包管理器控制台会打印一条消息,表明已成功完成更新和播种数据,但未在DataAccessLayer bin / Debug文件夹中创建 AdminToolsDB.sdf 。我还在整个解决方案文件夹中搜索此文件,但不存在任何文件。问题在哪里?

0 个答案:

没有答案