asp.net-mvc - EntityFramework-连接字符串在哪里?

标签 asp.net-mvc entity-framework-4 ef-code-first

我已经从我的web.config中删除了连接字符串,而Entity Framework仍在连接数据库!连接字符串在哪里设置?这是一个问题,因为我需要使网站的实时版本指向实时数据库。

最佳答案

在尝试连接到现有数据库时(就像您在做的那样),我发现了“配置之上的约定”哲学。

如果您的DbContext类(例如Northwind)位于 namespace (例如MvcProject)中,则由于某种原因,EF不会将该类的名称与web.config中名为“Northwind”(或“MvcProject.Northwind”)的连接字符串进行匹配,然后它将创建一个默认为本地SQLEXPRESS实例的连接字符串,并使用一个名为“MvcProject.Northwind”的数据库。这将是一个空的数据库。而且,在意识到自己没有连接到正确的数据库之前,您会不知所措,试图弄清为什么没有返回数据。

我解决这个问题的方法(虽然不是很好,但这是我找到的最快解决方法):在DbContext类中添加一个构造函数,该构造函数使用web.config中的连接字符串名称调用基址-例如

namespace MvcProject
{
    public class Northwind : DbContext
    {
        public Northwind() : base("Northwind") {}
    }
}

希望可以帮助某人;-)

关于asp.net-mvc - EntityFramework-连接字符串在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5790325/

相关文章:

asp.net-mvc - asp.net mvc 4 的博客示例

.net - Entity Framework 4.3 遇到的最大池大小

nhibernate - Entity Framework 4 的存储库模式

.net - 添加迁移给出文件名已经存在

c# - "the provider did not return a providermanifesttoken"使用 Oracle MangedDataAccess 和 EF 6 Code First

c# - 无法更新 Entity Framework 中的多对多关系

asp.net-mvc - 使用 AJAX 绑定(bind)时创建/更新后具有 IEnumerable 属性的 Kendo Grid 模型未正确更新

c# - 删除单个 RadGrid 列的过滤器

asp.net-mvc - 没有值(value)的asp.net mvc htmlattribute

linq-to-entities - 加载相关对象与查询连接