我有一个返回实体框架对象的have服务。在调用端,除了读取信息之外,我什么也不做,所以我不需要这些实体框架序列化属性。是否可以在返回实体框架对象时删除以下序列化文本?
<EntityKey> <EntitySetName>ClassName</EntitySetName> <EntityContainerName>MyEntities</EntityContainerName> -<EntityKeyValues> -<EntityKeyMember> <Key>ClassID</Key> <Value xsi:type="xsd:int">9903</Value> </EntityKeyMember> </EntityKeyValues> </EntityKey>发布于 2011-04-20 04:09:20
我已经读过EF如何要求我做一堆POCOs之类的东西,这需要我做很多工作。我决定再考虑一下,并对Entity对象做了一些深入的研究。在发现它不是密封的之后,我创建了一个继承自这个类的自定义类,并使用XmlIgnore属性向EntityKey字段添加了一个“新”语句。回到我的EF designer类,我将所有的类都改为继承自CustomEntityObject,瞧,没有不必要的字段。这是否是未来的证据,我对此表示怀疑。但对于这个项目,它工作得很好,不需要我为我所有的类编写DTO。希望其他人能发现它的用处:
public class CustomEntityObject : EntityObject {
[DataMember]
[Browsable(false)]
[XmlIgnore]
public new EntityKey EntityKey { get; set; }
}发布于 2011-04-20 03:03:40
据我所知这是不可能的。如果您使用EntityObject基本实体,您将始终在web服务结果中包含此数据。如果你不想暴露它们,你要么必须使用DTO (自定义对象,它将只传输你想要的数据),要么你必须使用不包含EntityKey和其他EF相关属性的EFv4和POCOs。
https://stackoverflow.com/questions/5719843
复制相似问题