2012-06-28 27 views
7

ORM için EntityFramework kullanarak bir ASP.NET MVC 4 Web API uygulamasına sahibim.C# MVC4 Web API - Sonuç JSON, nesne için ref yerine nesneler döndürmelidir

JSON I dönüşünde, birden çok üst düğüm için aynı alt düğümün bulunduğu bazı durumlar vardır. Bu durumlarda, çocuk düğümünün ilk oluşumu tüm üyeleriyle tamamen görülebilir. Sonraki herhangi bir olay, ilk oluşum için $ ref olarak gösterilir. Bunun yerine, döndürülen JSON'da her gösterildiğinde tam nesneyi görmek istiyorum. yerine görme Örneğin

:

[{ 
    "$id": "1", 
    "userId": 1, 
    "Badge": { 
     "$id": "2", 
     "badgeId": 1, 
     "badgeName": "Gold" 
     } 
    }, { 
    "$id": "3", 
    "userId": 2, 
    "Badge": { 
     "$ref": "2" 
     } 
    }] 

i görmek istiyorum:

[{ 
    "$id": "1", 
    "userId": 1, 
    "Badge": { 
     "$id": "2", 
     "badgeId": 1, 
     "badgeName": "Gold" 
     } 
    }, { 
    "$id": "3", 
    "userId": 2, 
    "Badge": { 
     "$id": "4", 
     "badgeId": 1, 
     "badgeName": "Gold" 
     } 
    }] 

Temelde ben JSON herhangi "$ ref" kurtulmak istiyorum. Bir yolu var mı?

Teşekkürler!

cevap

1

Oluşturulan varlık sınıfları kodunu düzenlemek kolay bir yoldur. Varlık sınıflarının her biri için, atanmış bir [DataContract(IsReference=true)] özniteliği olacaktır. Aşağıdaki gibi

şey: IsReference=false için

[EdmEntityTypeAttribute(NamespaceName="YourNamespace", Name="YourEntity")] 
[Serializable()] 
[DataContractAttribute(IsReference=true)] 
public partial class YourEntity : EntityObject 
{ 

Değişim o. Bu hile yapmalı.

+0

Üzgünüm, cevap vermem beni sonsuza kadar sürdü. bir cevap olduğunu bilmiyordum. o zamanda başvurdum iş çevresinde açıkça geri dönmeden önce webservice içinde null nesnesinin bazılarını ayarlamak için oldu. Bu çözümü bir de çekeceğim. Teşekkürler! – niltoid

+0

Bunu, öznitelikler yerine akıcı API ile yapmanın bir yolu var mı? – BlackICE

İlgili konular