与文件数据库上的Unity和Entity Framework的DbConnection

问题描述 投票:0回答:1

我正在处理的问题是奇怪的错误:

SqlException:建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称正确,并且已将SQL Server配置为允许远程连接。 (提供者:SQL网络接口,错误:52-无法找到本地数据库运行时安装。验证是否正确安装了SQL Server Express并启用了本地数据库运行时功能。)

每当调用带有db的任何方法时都会发生,例如:

foo()
{
    return _dbContext.data.ToList();
}

文件数据库是根据代码优先方法和连接字符串自动创建的:

<add name="Context" 
     connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\RestApi.Services.Context.mdf;Initial Catalog=RestApi.Services.Context;Integrated Security=True" 
     providerName="System.Data.SqlClient" />

我无法通过VS服务器资源管理器正确连接到该文件。

在同一台PC上,我运行了其他几个带有文件db的应用程序,没有任何错误。当我在debbuger中观看“ Context” var时,它似乎已连接到正确的DB,但是在workspaceID上有错误。

现在我被困住了,不知道如何解决它。 :(

UnityConfig:

public static void RegisterComponents()
{
        var container = new UnityContainer();
        container.RegisterType<Context, Context>(new PerThreadLifetimeManager());
        container.RegisterType<IXService, XService>();
        DependencyResolver.SetResolver(new Unity.Mvc5.UnityDependencyResolver(container));
        GlobalConfiguration.Configuration.DependencyResolver = new Unity.WebApi.UnityDependencyResolver(container);
}

上下文类:

public class Context : DbContext
{
    public Context() : base("name=Context") 
    {
    }

    public DbSet<X> Xs{ get; set; }
    public DbSet<Z> Zs{ get; set; }
    public DbSet<Y> Ys{ get; set; }
}
c# .net entity-framework unity-container
1个回答
0
投票

确保连接字符串数据源是有效的服务器名称。如果服务器名称有效,请按照以下说明进行操作,可能会有所帮助。

打开“ SQL Server配置管理器”

现在单击“ SQL Server网络配置”,然后单击“名称协议”

右键单击“ TCP / IP”(确保已启用),单击“属性”

现在选择“ IP地址”选项卡-并且-转到最后一个条目“ IP全部”

输入“ TCP端口” 1433。

现在重新启动“ SQL Server .Name。”使用“ services.msc”(winKey + r)

© www.soinside.com 2019 - 2024. All rights reserved.