以下是使用WCF服务和EF构建的MVC应用程序的体系结构:
MVC应用程序>> WCF服务>>业务逻辑层>>数据访问层>>数据存储
我在数据访问层中创建了MyDbContext
,并且它正在与数据库进行交互。
我在MVC应用程序的web.config
文件中创建了一个名为MyDbContext
的连接字符串。我相信这应该工作,但它试图在我的SQL服务器上创建一个新的数据库。可能是什么原因?或者如果我遗失了什么?
如果我将连接字符串放在WCF服务的web.config
中,它可以正常工作。但我相信这应该只是MVC应用程序的一部分,而且WCF不应仅限于使用此connectionstring
。
答案 0 :(得分:1)
如果您使用WCF服务访问业务层和数据访问层,则ASP.NET MVC应用程序不应直接访问数据库 - 它甚至根本不了解数据库的存在。这就是你使用WCF服务的原因,不是吗?否则,您可以删除整个WCF服务层并直接从ASP.NET MVC调用业务层。
不会通过WCF调用从MVC应用程序自动传输连接字符串。正确的解决方案是在WCF应用程序中定义连接字符串,因为它是访问数据库的层。
答案 1 :(得分:0)
由于WCF服务托管在同样容纳数据访问层的容器中,因此使用正确的连接字符串对其进行配置是完全合理的。
你为什么不想这样做?