精简实体框架库';s对app.config的依赖关系

本文关键字:app config 关系 依赖 实体 框架 | 更新日期: 2023-09-27 18:19:45

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

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

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

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

精简实体框架库';s对app.config的依赖关系

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;

您可以从一直这样做的静态工厂初始化所有数据上下文。您可以从创建实体时生成的初始连接字符串中获取元数据和提供程序。

在主web.config/app.config中指定配置对所有.NET应用程序来说都很常见。即使是大型产品也会使用它。尽量避免使用它没有任何好处。

如果你想让.dll管理连接字符串,它必须从某个地方读取它——可能是从库中文件名硬编码的自定义配置文件中读取。一旦加载了连接字符串,就可以将其传递给ObjecContext的构造函数,如@linkerro所示。