实体框架代码第一个错误"找到指定的服务器/实例时出错"

And*_*oes 12 c# ef-code-first entity-framework-4.1

我正在尝试将Code First与我的本地Sql Server 2008 R2实例一起使用.我创建了一个用户'dev',可以使用Sql Managment Studio登录并创建数据库.问题是我在EntityFramework中尝试使用DbContext创建数据库时不断收到错误消息.这是错误消息:

"建立与SQL Server的连接时发生与网络相关或特定于实例的错误.未找到服务器或无法访问服务器.验证实例名称是否正确以及SQL Server是否配置为允许远程连接.SQL网络接口,错误:26 - 找到指定的服务器/实例时出错"

错误消息我检查了我的Sql Server,它确实允许远程连接.

我用以下代码抽象了我的系统并得到了同样的错误:

namespace CodeFirstConsole
{
    public class Program
    {
        static void Main(string[] args)
        {
            var db = new MyContext();
            try { Console.WriteLine(db.Parents.Count()); }
            catch (Exception) { throw; }
            Console.Read();
        }
    }

    internal class MyContext : DbContext
    {
        public DbSet<ParentObject> Parents { get; set; }
        public DbSet<ChildObject> Children { get; set; }

        public MyContext()
        {
            this.Database.Connection.ConnectionString =
                "Data Source=.;Database=ConsoleTest;Initial Catalog=ConsoleTest;User ID=dev;Password=dev;";
        }
    }

    internal class ParentObject
    {
        public int Id { get; set; }
        public string PropertyOne { get; set; }
    }

    internal class ChildObject
    {
        public int Id { get; set; }
        public bool PropertyOne { get; set; }
        public string PropertyTwo { get; set; }

        public virtual ParentObject Parent { get; set; }
    }

    internal class MyInitializer : DropCreateDatabaseAlways<MyContext>
    {

        protected override void Seed(MyContext context)
        {
            context.Parents.Add(new ParentObject() { PropertyOne = "hi" });
            base.Seed(context);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Chr*_*len 25

我有同样的错误,让我坚持了大约一天.我的情况是我有一个预先存在的启动项目的大型解决方案,我正在为持久性项目添加EF.

所以第一步是添加EF依赖项.这在我的持久性项目中创建了一个具有正确EF内容的app.config.然后我去了Enable-Migrations并在这篇文章中得到了同样的错误.此时我没想到将EF app.config设置复制到启动项目的app.config,因为我认为在最终运行应用程序之前我必须使用它.

当我将解决方案启动项目更改为持久性项目时,问题得以解决,因此我可以让EF找到正确的app.config.或者我可以将EntityFramwework相关部分复制到启动项目的app.config中.

  • 非常感谢.我正在敲打着我. (3认同)
  • 启动项目......!你值得拥抱! (3认同)