未使用数据库连接字符串

本文关键字:字符串 数据库连接 未使用 | 更新日期: 2023-09-27 17:57:41

我已经用谷歌搜索了这个问题的全部内容,我找不到解决方案。

针对由.net web应用程序使用的域程序集,使用EF代码优先的方法。

在域项目中有一个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,然后重新运行enable迁移,然后运行web应用程序项目,使EF对数据库做它自己的事情。然而,它什么也没做!

当我运行web应用程序时,尽管它可以工作!表中有数据(来自种子),但我看不到任何数据库!它必须使用一个可移植的sql文件,这没有意义,因为我已经使用配置字符串为特定的数据库/服务器配置了它。

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

update-database -ConnectionStringName DefaultConnection -f

仍然没有快乐。

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

谢谢,

泽维尔。

未使用数据库连接字符串

您将在Users'[youruser]'[Name you passed in your context constructor].mdf 中找到您的数据库

app/web.config仅在主项目中使用,如果您在主项目之外有app.config/web.config,则不会使用它(有些模板添加了它们,但它们是作为示例使用的)。

检查此答案是否存在EF4 的类似问题

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