c# – 实体框架代码第一个错误“定位服务器/实例指定的错误”

前端之家收集整理的这篇文章主要介绍了c# – 实体框架代码第一个错误“定位服务器/实例指定的错误”前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图使用我的本地实例sql Server 2008 R2使用Code First.我创建了一个用户’dev’,可以使用sql Managment Studio登录并创建数据库.问题是在尝试使用EntityFramework中的DbContext创建数据库时,我会收到一条错误消息.这是错误信息:

“A network-related or instance-specific error occurred while
establishing a connection to sql Server. The server was not found or
was not accessible. Verify that the instance name is correct and that
sql Server is configured to allow remote connections. sql Network Interfaces,error: 26 – Error Locating Server/Instance Specified”

错误消息我检查了我的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);
        }
    }
}

解决方法

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

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

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

猜你在找的C#相关文章