当前位置:主页   - 电脑 - 网站开发 - ASP.Net
Entity framework : wcf 初体验
来源:网络   作者:   更新时间:2012-03-28
收藏此页】    【字号    】    【打印】    【关闭

   之前还不了解wcf的时候,就常常在EF Design team blog上和adodotnetentityframework社区看到一些关于EF在wcf场景中的应用的话题和文章。因为一直很关注EF,所以很想知道在wcf中是怎样在应用的。想从互联网上找些代码示例看看,不过没有什么收获。之后在学习wcf时,在new WCF features in .NET 3.5 SP1 了解到 WCF完全支持POCO(Support for ADO.NET Entity Framework entities in WCF contracts尽管到现在我知道POCO的定义是Plain old c# Object,可还没搞清无法理解和何为POCO),这让我更有了尝试的冲动,可是当写完测试方法后,我照例使用wcftestclient工具来调用,可居然发现如图所示,无法调用而我的契约则是这样声明的:

Entity framework : wcf 初体验

  图1

[OperationContract]

  string GetCategoryById(int categoryID);

  [OperationContract]

  NorthWind.Categories GetCategoryById1(int categoryID);

  [OperationContract]

  void GetCategoryById2(int categoryID, out NorthWind.Categories obj); 

  [OperationContract]

  string DoWork();

  [OperationContract]

 Student GetStudent(string id)

   当然对于自定义的DTO对象(GetPerson(),DoWork()),调用则正常。添加一个控制台客户端,创建一个代理可以调用上面的方法,GetStudent()都正常,调用和EF相关的方法,但是报错,我又不知无法debug,在使用wcftestclient调用.svc的服务时,直接可以debug的。这些问题不仅让我郁闷还让我很奇怪,为什么会这样呢,是我哪里做的不对?后来在codeplex找到一个叫besocia 开源项目(关于ef和wcf ),不过打开代码查看,发现里面是用传统的方法,自定义传输对象在完成(没有别的意思,只是那不是我想看到的),不过后来我想是不是由于返回值的原因,于是我定义了GetCategoryById(),GetCategoryById1(),GetCategoryById2()三个不同返回类型的方法,而在wcftestclient下面显示的结果则如图1。

其它资源
来源声明

版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明