मैं कोड फर्स्ट और वेब एपीआई के साथ ईएफ का उपयोग करने का प्रयास कर रहा हूं। मुझे तब तक कोई समस्या नहीं है जब तक कि मैं कई से कई रिश्तों को क्रमबद्ध नहीं करता।एंटिटी फ्रेमवर्क ऑब्जेक्ट्स का सीरियलाइजेशन वन टू रिलेशनशिप
public class TagsController : ApiController
{
private BlogDataContext db = new BlogDataContext();
// GET api/Tags
public IEnumerable<Tag> GetTags()
{
return db.Tags.AsEnumerable();
}
}
मैं निम्नलिखित त्रुटि मिलती है:: जब मैं निम्न वेब api विधि निष्पादित करने के लिए नीचे दिए गए मैं निम्नलिखित त्रुटि संदेश प्राप्त प्रयास
'System.Data.Entity.DynamicProxies.Tag_FF17EDDE6893000F7672649A39962DB0CA591C699DDB73E8C2A56203ED7C7B6D' with data contract name 'Tag_FF17EDDE6893000F7672649A39962DB0CA591C699DDB73E8C2A56203ED7C7B6D: http://schemas.datacontract.org/2004/07/System.Data.Entity.DynamicProxies ' is not expected. Consider using a DataContractResolver or add any types not known statically to the list of known types - for example, by using the KnownTypeAttribute attribute or by adding them to the list of known types passed to DataContractSerializer.
मैं कुछ अतः लेख (article 1, article 2) पढ़ा है कि फिक्स निम्न विशेषता को जोड़ना है:
[DataContract (IsReference=true)]
लेकिन इसका कोई प्रभाव नहीं पड़ा है। [IgnoreDataMember] का उपयोग करने पर भी कोई प्रभाव नहीं पड़ता है। काम करने के लिए प्रतीत होता है कि एकमात्र विकल्प कॉन्फ़िगरेशन सेट करने के लिए है। PrroxyCreationEnabled गलत पर। क्या यह मेरा एकमात्र विकल्प है? क्या मैं कुछ भूल रहा हूँ?
नमूना POCO वस्तुओं:
टैग
[DataContract(IsReference = true)]
public class Tag
{
public Tag()
{
this.Blogs = new HashSet<Blog>();
}
[Key]
[DataMember]
public int Id { get; set; }
[DataMember]
public string Name { get; set; }
[IgnoreDataMember]
public virtual ICollection<Blog> Blogs { get; set; }
}
ब्लॉग
[DataContract(IsReference = true)]
public class Blog
{
public Blog()
{
this.Tags = new HashSet<Tag>();
}
[Key]
[DataMember]
public int Id { get; set; }
[DataMember]
public string Name { get; set; }
[IgnoreDataMember]
public virtual ICollection<Tag> Tags { get; set; }
}
का समाधान होगा, और मैंने पाया के रूप में आप, और एरिक फिलिप्स, ने कहा है कि एकमात्र समाधान है। प्रॉक्सी निर्माण बंद करने के लिए। 'IgnoreDataMember' का कोई प्रभाव नहीं पड़ता है क्योंकि समस्या प्रॉक्सी पीढ़ी के साथ है, न कि 'टैग' के' आईसीओलेक्शन 'के क्रमिकरण। –
मुझे एक ही समस्या है, आपने इसे कैसे हल किया? जब मैं प्रॉक्सी सृजन को अक्षम करता हूं तो मुझे माता-पिता के मान नहीं मिल सकते हैं, जिन्हें मुझे इसकी आवश्यकता है। कृपया मेरी मदद करो। –