C# 为什么实体框架不';是否无法从原始程序集配置文件中读取?不可能吗?为什么?

C# 为什么实体框架不';是否无法从原始程序集配置文件中读取?不可能吗?为什么?,c#,entity-framework,C#,Entity Framework,关于这一答复: 实体框架似乎从启动项目的配置文件中获取连接字符串属性,而不是从被引用项目的配置文件中获取连接字符串属性 为什么会这样?这是一个(有点奇怪的)惯例吗?这个决定背后有什么理由吗 或者DLL不可能有一个可访问的配置文件 为什么会这样 配置文件是供最终用户管理员配置应用程序的地方。拥有多个配置文件很快就会变得混乱,除非它们有非常明确的用途 连接字符串和类似的配置项总是进入.exe.config(或web.config)文件,因此管理员希望在这里查找和维护该信息 因此,这并不奇怪。唯一奇怪

关于这一答复:

实体框架似乎从启动项目的配置文件中获取连接字符串属性,而不是从被引用项目的配置文件中获取连接字符串属性

为什么会这样?这是一个(有点奇怪的)惯例吗?这个决定背后有什么理由吗

或者DLL不可能有一个可访问的配置文件

为什么会这样

配置文件是供最终用户管理员配置应用程序的地方。拥有多个配置文件很快就会变得混乱,除非它们有非常明确的用途

连接字符串和类似的配置项总是进入
.exe.config
(或
web.config
)文件,因此管理员希望在这里查找和维护该信息

因此,这并不奇怪。唯一奇怪的是EF工具在类库项目中生成了一个
app.config
(但是还有其他地方可以放它:解决方案中可能没有可执行项目,或者可能有多个)

或者DLL不可能有一个可访问的配置文件


您可以使用
System.Configuration
程序集的类型将任意文件作为配置文件打开和处理,因此这是可能的。但中心配置的任何假设(例如,将配置字符串的名称而不是配置字符串本身传递给EF构造函数)都不起作用。有关更多信息,请参见。

按设计。“原始”配置未包含在启动项目中,因此编译了一些基本原理,请参见。是的,这是可能的,不,这是不可取的。如果你能解释为什么你认为你需要这个,也许可以给出一些更具体的答案。