当前位置:  开发笔记 > 编程语言 > 正文

WCF与实体框架的合同?

如何解决《WCF与实体框架的合同?》经验,为你挑选了1个好方法。

我已经在这个问题上提出了许多死路一条.据推测,.NET 3.5 SP1在WCF合同中支持ADO.NET实体框架实体.但是,当我寻找有关它的可靠信息时,我没有得到很多答案.我在MSDN线程上找到了这个片段.有人对这个有经验么?[DataContract]发生了什么?这就是全部吗?为什么这么少的材料呢?

这是Tim Mallalieu在微软的回答.

默认情况下,实体框架中生成的实体类型是数据合同.如果我要在实体设计器中创建一个简单模型,如下所示:购物车实体类型默认为DataContract,其所有属性都注释为数据成员.然后我们可以在WCF服务中使用它,如下所示:

[ServiceContract]

public interface IService1

{
    [OperationContract]
    Cart[] AllCarts();
}



public class Service1 : IService1

{
    public Cart[] AllCarts() 

    {
        using (MSPetShop4Entities context = new MSPetShop4Entities())

        {
            var carts = from c in context.Carts select c;
            return carts.ToArray();
        }
    }
}

由于实体是DataContracts,您现在可以根据需要推送您的服务并通过网络发送这些服务.



1> John Saunder..:

我建议您不要直接返回实体.不幸的是,Microsoft选择将特定于实现的数据作为DataContract实体的一部分.这不会与其他平台互操作,甚至可能无法在.NET版本之间进行互操作.

相反,我建议您遵循数据传输对象模式,只返回POCO类,它们是实体中数据的副本,没有任何行为.您可以返回此类的列表以表示表等.

推荐阅读
ar_wen2402851455
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有