加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 04:11:48 所属栏目:百科 来源:网络整理
导读:我试图使用我的本地实例Sql Server 2008 R2使用Code First.我创建了一个用户’dev’,可以使用Sql Managment Studio登录并创建数据库.问题是在尝试使用EntityFramework中的DbContext创建数据库时,我会收到一条错误消息.这是错误信息: “A network-related or
我试图使用我的本地实例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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读