Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 实体框架-分层设计-连接字符串放在哪里?_C#_Entity Framework_Data Access Layer_N Tier Architecture - Fatal编程技术网

C# 实体框架-分层设计-连接字符串放在哪里?

C# 实体框架-分层设计-连接字符串放在哪里?,c#,entity-framework,data-access-layer,n-tier-architecture,C#,Entity Framework,Data Access Layer,N Tier Architecture,我使用的是一个分层体系结构,实体框架作为我的数据层,上面有一堆存储库,其中包含Linq到实体的查询。 数据层是一个项目,旁边是一个服务层和接口,这是一个网站 我希望我的网站负责为我的实体模型指定connectionstring。我该怎么做 我使用单例方法访问位于数据层内部的实体存储库 对我来说,非常感谢,虽然我使用的是L2S而不是L2E,但建议应该有效。我有一个通用配置库,它从一个XML文件提供源。当需要数据上下文时,每个数据对象都有如下方法。当然,如果您愿意,它可以很容易地模板化 privat

我使用的是一个分层体系结构,实体框架作为我的数据层,上面有一堆存储库,其中包含Linq到实体的查询。 数据层是一个项目,旁边是一个服务层和接口,这是一个网站

我希望我的网站负责为我的实体模型指定connectionstring。我该怎么做

我使用单例方法访问位于数据层内部的实体存储库


对我来说,非常感谢,虽然我使用的是L2S而不是L2E,但建议应该有效。我有一个通用配置库,它从一个XML文件提供源。当需要数据上下文时,每个数据对象都有如下方法。当然,如果您愿意,它可以很容易地模板化

private static string _conStr = null;
private static CalendarsAndListsDataContext GetDataContext()
{
    if (_conStr == null)
    {
        _conStr = ConfigurationLibrary.Config.Settings().GetConnectionString("liveConString");
    }

    return new CalendarsAndListsDataContext(_conStr);
}

现在,最大的缺点是连接字符串更改需要重新启动应用程序,但在我的情况下,这不是问题。

您可以将DAL程序集的App.Config中创建的连接字符串复制到web.Config的ConnectionString部分

您可以将连接字符串保留在程序集dll中,但不应将其与网站一起部署

您需要复制整个连接字符串。应该是这样的:

<add name="DataEntities" connectionString="metadata=res://*/DataModel.csdl|res://*/DataModel.ssdl|res://*/DataModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=xxx;Initial Catalog=xxx;User Id=xxx;Password=xxx;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />


它应该包括映射文件所在位置的所有信息。

我喜欢在其他项目中如何分离配置。但对于这个应用程序,我希望我的网站负责连接字符串。好吧,没有理由让您的配置层必须是只读的。您可以让它读/写,这样就可以执行类似COnfigurationLibrary.Config.AddSetting(“ConnectionString”、“MyString”)的操作。然后你的网站仍然可以驱动连接字符串。