2012-06-21 13 views
5

इकाई की रूपरेखा संहिता प्रथम में एक-कई या कई-अनेक संबंध इस तरह दिखता है: -इकाई की रूपरेखा कोड पहला और CA2227 "संग्रह गुण केवल पढ़ने के लिए किया जाना चाहिए"

public class Foo 
{ 
    public int Id { get; set; } 
    public virtual ICollection<Bar> Bars { get; set; } 
} 

इस संहिता विश्लेषण नियम 2227 का उल्लंघन करती है " संग्रह गुण केवल पढ़ा जाना चाहिए "।

सेटर संरक्षित मदद नहीं करता बनाना, और यह निजी बनाने: -

public class Foo 
{ 
    public int Id { get; set; } 
    public virtual ICollection<Bar> Bars { get; private set; } 
} 
निश्चित रूप से

तो उल्लंघन CA1811 "Foo.Bars.set (ICollection < बार>) कोई नदी के ऊपर जनता के लिए प्रकट होता या संरक्षित कॉलर्स "।

मैं नहीं बल्कि शासन बंद कर देते हैं, हम उसे नहीं विश्व स्तर पर है क्योंकि स्थिति यह को रोकने के लिए मौजूद है काफी महत्वपूर्ण है, लेकिन स्थानीय स्तर पर यह हर बार मैं घोषणा करना चाहते दबा एक रिश्ते से दूर लगता है। क्या ऐसे संबंध घोषित करने का कोई तरीका है जो CA2227 का उल्लंघन नहीं करता है?

+0

मैं ठीक उसी समस्या हो रही थी। मुझे कोई उचित समाधान नहीं मिलने के बाद, मैंने फैसला किया कि SuppressMessage() शायद जाने का सबसे व्यावहारिक तरीका है। – theDmi

उत्तर

4

अपने सभी कोड पहले इकाइयों को अपनी असेंबली में रखें और उस असेंबली के लिए नियम को बाहर कर दें।

+0

सही उत्तर बोनर द्वारा प्रदान किया जाता है। –

5

निम्नलिखित के लिए अपने कोड में परिवर्तित करें:

public class Foo { 
    public Foo() { 
     Bars = new Collection<Bar>(); 
    } 

    public int Id { get; set; } 
    public virtual ICollection<Bar> Bars { get; private set; } 
} 
संबंधित मुद्दे