【发布时间】:2010-10-17 12:52:15
【问题描述】:
我一直在我的 ASP.NET MVC 应用程序中尝试 Linq to Sql 和 EF。切换到 EF 后,我意识到我的 XML/JSON 序列化输出有多余的内容。
XML:
<Test xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<EntityKey>
<EntitySetName>Persons</EntitySetName>
<EntityContainerName>PersonEntities</EntityContainerName>
<EntityKeyValues>
<EntityKeyMember>
<Key>Id</Key>
<Value xsi:type="xsd:int">1</Value>
</EntityKeyMember>
</EntityKeyValues>
</EntityKey>
<Id>1</Id>
<Name>John</Name>
</Test>
JSON:
{"Id":1,"Name":"John","EntityState":2,"EntityKey"{"EntitySetName":"Persons","EntityContainerName":"PersonEntities","EntityKeyValues":[{"Key":"Id","Value":1}],"IsTemporary":false}}
相反,我希望我的输出是:
{"Id":1, "Name":"John"}
我检索对象的 EF 查询是:
Tests.First(t => t.Id == testId);
【问题讨论】:
-
我很想知道您是如何设法从 EF 对象获取 JSON 序列化的。我认为引用计数机制不兼容。我最终创建了一个匿名类型并将其序列化(基本上作为 DTO)
-
@Program.X,我写了一个适合我的过滤器,但我还没有在复杂的 EF 对象上尝试过。 aleembawany.com/2009/03/27/… 让我知道这是否适合您,以及您是否找到解决手头问题的更好方法。
-
另外,如果您不在 .NET framework 3.5SP1/VS2008 SP1 上,您可能会遇到问题。
标签: linq-to-sql json entity-framework serialization poco