WCF和实体框架。如何为所有实体创建服务层 - 通常

时间:2016-01-26 18:42:21

标签: c# .net entity-framework wcf generics

好的,我在这里有点懒。 我想要一个通用WCF服务层来支持我的数据库功能。我有一个用于数据库访问的存储库模式 - 但是在我正在阅读的WCF中,似乎我想访问每个实体 - 我需要为每个实体创建一个服务合同(我猜多个端点。)因为我没有想要多个主机。 WCF数据服务仅支持webHTTPBinding而不支持Net.Tcp绑定。 DAL EF数据POCO在客户端和服务主机之间共享。因此可以使用泛型,因为类型在客户端和服务器中共享?如果是这样,一个简单的小例子就足以让我继续前进。

1 个答案:

答案 0 :(得分:1)

基本上你需要做的就是将所有东西分解成单独的库。您需要为服务合同,服务接口,数据层和数据传输对象库创建单独的类。

这样做是为了使服务接口库可以在客户端共享,并用于使用ChannelFactory对象构建代理并传递对接口的引用。 (不要使用Visual Studio中的“添加服务引用”选项 - 手动构建它)

执行此操作可以自定义代理创建。你不能做的是使通用函数访问服务方法,因为SOAP和WCF的重点是方法在客户端和服务器之间形成一个可靠的契约。但是,这样做至少会为您提供一种在代码编写方面分担客户端和服务器之间的一些负担的方法。

Miguel Castro在这里提供了一篇很好的文章来解释这个方法:www.codemag.com/article/0809101