wcf - Entity Framework 数据合约

标签 wcf entity-framework-4.1

我是 WCF 和 Entity Framework 的新手。

我有一个类库“A”,其中包含 DatabaseEntities.edmx( Entity Framework objectContext)。

这个库公开了一个类“B”,它包含一个函数FunctionB,在内部使用实体对象。

我已将此库“A”引用放入 WCF Web 服务和 IService.cs 中 - 我已将其编码如下:

[OperationContract]
void FunctionB_Proxy();

没有定义任何 DataContract 我已经进入 Service1.cs 并实现了这个功能 如下:

public void FunctionB_Proxy()
{
  ClassB x=new ClassB();//Class of ClassLibrary
  x.FunctionB(); 
}

这很好用。

但我的问题是:DataContract 在 WCF 中是可选的吗?

提前谢谢..

最佳答案

.NET 3.5 SP1 开始 - 是的,不再需要 [DataContract]

如果你省略它,那么类将像 XML 序列化器一样被序列化:你的类上的所有公共(public)属性都将默认被序列化。

但是:如果您开始在您的类上使用 [DataContract] 或在您的某个属性上使用 [DataMember],那么您必须[DataMember] 装饰你想要序列化的所有属性。

因此,要么:完全忽略这些属性(使用 XML 序列化程序使用的默认行为),要么具体化并使用 [DataContract] 和您想要的每个属性来装饰类用 [DataMember] 序列化。我更喜欢第二种方法。

关于wcf - Entity Framework 数据合约,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16881450/

相关文章:

.net - Entity Framework 4.1 DbContext API 中的接口(interface)和存储库抽象中断子查询?

c# - WCF 还是服务总线?

c# - 具有 'normal' 接口(interface)的 WCF 异步实现

c# - WCF 服务发现问题,需要多长时间才能返回结果?

c# - WCF - 在没有客户端调用的情况下发送回调

WCF - 使用 SSL 的加密(可能还有身份验证)

c# - ASP.NET 中每个请求的 Entity Framework 对象上下文?

c# - 如何重写查询表达式以用整数替换枚举?

c# - ICollection 上的 AsQueryable() 真的可以延迟执行吗?

entity-framework - 使用 Entity Framework Code First 更新数据库架构