跟着教程做了个MVC5的Demo,使用EF创建数据库,但是这里的EF是单独一个项目作为数据层的,我的context没设置连接字符串,EF会自动连接到localdb的,以前不分层的时候测试过是不会有错误的,但是这次我测试登陆的时候,就弹出如下错误真的不知道为什么?已经为这个问题浪费我一整天的时间了,哭,最后注册了这个号只为求大神帮帮忙!!!感激不尽ing!!
//
     在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: SQL Network Interfaces, error: 26 - 定位指定的服务器/实例时出错)  public T Find(Expression<Func<T, bool>> where)
      {
            return Context.Set<T>().Where(where).FirstOrDefault();//这句报错
       }
//

解决方案 »

  1.   

    Context怎么new出来的?ef的code first需要将启动项目设置在你的应用项目上,而不是ef那个项目上
      

  2.   

    我是MVC的项目,分三层架构,然后数据层是使用EF,
      

  3.   

    谁知道你是根据什么教程做的我的context没设置连接字符串,EF会自动连接到localdb的
    ==>
    系统为你建好了,在sql资源管理器找找库,在配置文件里应该有链接字符串
      

  4.   

    直接new的话,ef会默认取默认数据库配置节点,你new的构造方法里面要传递你的connectionstring配置节点名称
      

  5.   

    怎么可能不行呢?
    人家领域驱动,把ef单独分离出来也是妥妥的毫无问题的。 你展示的错误,很明显的就是读取到了连接字符串,但是服务器名无效。
    你的web项目引用了ef。那就在web项目中的config里配置ef需要使用的连接字符串。
      

  6.   

    连接字符串在webconfig或者appconfih中配置的,context中只是引用而已,大哥
      

  7.   

    找到你的数据库上下文,就是继承DbContext的那个类,你这个好像叫userContext,public TestDBEntities()
                : base("name=数据库配置名字")
            {
            },这个数据库配置名字就是你web里Web.config配置文件下connectionStrings节点的name属性的名字,你看看这些配置好了吗。
      

  8.   

    这个TestDBEntities是我自己的,你的应该叫public UserContext.
      

  9.   

    看下报什么错误,建议你用sql server localdb,主要是减少了配置不对造成的错误