首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >防止实体框架序列化EntityKey、EntitySetName等

防止实体框架序列化EntityKey、EntitySetName等
EN

Stack Overflow用户
提问于 2011-04-20 00:50:27
回答 2查看 2.3K关注 0票数 4

我有一个返回实体框架对象的have服务。在调用端,除了读取信息之外,我什么也不做,所以我不需要这些实体框架序列化属性。是否可以在返回实体框架对象时删除以下序列化文本?

代码语言:javascript
复制
<EntityKey> <EntitySetName>ClassName</EntitySetName> <EntityContainerName>MyEntities</EntityContainerName> -<EntityKeyValues> -<EntityKeyMember> <Key>ClassID</Key> <Value xsi:type="xsd:int">9903</Value> </EntityKeyMember> </EntityKeyValues> </EntityKey>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-04-20 04:09:20

我已经读过EF如何要求我做一堆POCOs之类的东西,这需要我做很多工作。我决定再考虑一下,并对Entity对象做了一些深入的研究。在发现它不是密封的之后,我创建了一个继承自这个类的自定义类,并使用XmlIgnore属性向EntityKey字段添加了一个“新”语句。回到我的EF designer类,我将所有的类都改为继承自CustomEntityObject,瞧,没有不必要的字段。这是否是未来的证据,我对此表示怀疑。但对于这个项目,它工作得很好,不需要我为我所有的类编写DTO。希望其他人能发现它的用处:

代码语言:javascript
复制
public class CustomEntityObject : EntityObject {
    [DataMember]
    [Browsable(false)]
    [XmlIgnore]
    public new EntityKey EntityKey { get; set; }
}
票数 8
EN

Stack Overflow用户

发布于 2011-04-20 03:03:40

据我所知这是不可能的。如果您使用EntityObject基本实体,您将始终在web服务结果中包含此数据。如果你不想暴露它们,你要么必须使用DTO (自定义对象,它将只传输你想要的数据),要么你必须使用不包含EntityKey和其他EF相关属性的EFv4和POCOs。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5719843

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档