不使用数据库连接字符串

时间:2014-04-10 12:36:38

标签: c# entity-framework ef-code-first

我已经解决了这个问题的废话,我找不到解决方案。

对域组件使用EF代码第一种方法,由.net Web应用程序使用。

在域项目中有一个app.config,在那里我有以下EF连接字符串

<connectionStrings>
<add name="DefaultConnection" connectionString="Initial Catalog=easyDayTea;Data Source=localhost;user=sa; password=12344321" providerName="System.Data.SqlClient" />

然后在上下文类TeaDb.cs中我有以下构造函数:

public TeaDb()
        : base("name=DefaultConnection")
    {

    }

我也试过在构造函数中单独使用“DefaultConnection”。

问题:

一切都很好,直到EF决定不再注意添加到上下文中的其他类/表,所以我通过删除迁移文件夹并清空表的数据库从项目中删除EF,然后重新启用启用-migrations然后是Web应用程序项目,以使EF对数据库执行此操作。但它没有做任何事情!

当我运行Web应用程序虽然它有效!并且表中有数据(来自种子),但是在我能看到的任何数据库中都没有!它必须使用可移植的sql文件,因为我使用配置字符串为特定的数据库/服务器配置了它,所以没有意义。

我还尝试通过执行以下操作来专门指定要使用的连接字符串:

update-database -ConnectionStringName DefaultConnection -f

仍然没有快乐。

如果有人能帮助我,那就太棒了!

谢谢,

济。

2 个答案:

答案 0 :(得分:0)

EF不使用类库中app.config的连接字符串。它将使用Web应用程序中web.config的连接字符串。如果您没有在web.config中定义连接字符串,则可能使用约定将数据库与LocalDb附加到App_Data目录中。

答案 1 :(得分:0)

您可以在Users\[youruser]\[Name you passed in your context constructor].mdf

找到您的数据库

app / web.config仅在主项目中使用时才会被使用,如果你的主项目外有app.config / web.config它将不被使用(一些模板添加它们,但它们是为了用作例子。)

检查此answer是否存在与EF4类似的问题