减少Entity Framework库对app.config的依赖

时间:2012-01-09 11:36:34

标签: c# .net entity-framework

我正在寻找一些关于如何减少我的Entity Framework库对app或web.config文件的依赖性的建议。我的应用程序包含一个ADO.NET实体数据模型。

我目前在Web项目中引用了这个库,但为了做到这一点,我必须在部署之前将连接字符串添加到Web应用程序的web.config中。

我现在需要使用独立DLL,并且无法更改父项目的配置文件以包含我的EF库。

存储连接字符串的最佳方法是什么,同时保持edmx的完整性以及我应该在哪里引用它?

2 个答案:

答案 0 :(得分:7)

EntityConnectionStringBuilder builder = New EntityConnectionStringBuilder();
builder.Metadata =
    "res://*/Entities.VDMFinance.csdl|res://*/Entities.YourEntities.ssdl|res://*/Entities.YourEntities.msl";
builder.Provider = "System.Data.SqlClient";
builder.ProviderConnectionString = yourConnectionString;
Dim dc As New YourEntities(builder.ConnectionString)
dc.CommandTimeout = 0;

您可以从静态工厂初始化所有数据上下文,并始终执行此操作。您可以从创建实体时生成的初始连接字符串中获取元数据和提供程序。

答案 1 :(得分:3)

在主web.config / app.config中指定配置对于所有.NET应用程序都是通用的。即使是大型产品也使用它。试图避免它没有任何好处。

如果您希望.dll管理连接字符串,则必须从某处读取它 - 可能来自库中硬编码文件名的自定义配置文件。加载连接字符串后,您可以将其传递给ObjecContext的构造函数,如@linker所示。