实体框架数据合同

Suz*_*ane 3 wcf entity-framework-4.1

我是WCF和Entity框架的新手.

我有一个包含DatabaseEntities.edmx(实体框架objectContext)的类库"A" .

该库在FunctionB内部使用实体对象公开包含函数的类"B" .

我把这个库"A"引用到了WCF Web服务中并且在里面IService.cs- 我已经编写了这样的代码:

[OperationContract]
void FunctionB_Proxy();
Run Code Online (Sandbox Code Playgroud)

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

public void FunctionB_Proxy()
{
  ClassB x=new ClassB();//Class of ClassLibrary
  x.FunctionB(); 
}
Run Code Online (Sandbox Code Playgroud)

这很好用.

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

提前致谢..

mar*_*c_s 10

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

如果省略它,那么类将像XML序列化程序那样序列化:默认情况下,类的所有公共属性都将被序列化.

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

所以它要么:完全省略这些属性(使用XML序列化程序使用的默认行为),或者然后具体并使用[DataContract]您要序列化的每个属性来装饰类[DataMember].我更喜欢第二种方法.