我在3层解决方案中使用Entity Framework实现了WCF服务。我得到了它的工作,但令我困惑的是为什么我必须复制连接字符串(在配置文件中指定 C1 ,实体框架用来从数据库中检索架构信息)到配置文件中 C2 使用了WCF服务?也就是说,如果我不复制连接字符串,那么我得到:
FaultException: The specified named connection is either not found in the confiuration,
not intended to be used with the EntityClient provider, or not valid.
因此,似乎 C1 的连接字符串在设计时由Entity Framework使用,而在运行时连接中使用 C2 中指定的字符串来连接到数据库?为什么呢?
谢谢
答案 0 :(得分:1)
除非另行指定,否则连接字符串始终来自执行程序集的配置文件。原因很明显:引用相同数据DLL的两个不同的可执行文件可能想要使用不同的物理数据库。
在设计时,没有正在执行的程序集。因此,使用包含EDMX的项目的配置文件。