2011-10-21 7 views
5

जब मैं एक नई वस्तु जोड़ने की कोशिश करता हूं तो प्रत्येक इकाई के लिए अन्य इकाई के साथ कई संबंधों में से एक है ऐसा लगता है कि मुझे इस इकाई से संबंधित वस्तुओं की सूची को परिभाषित करना है। उदाहरण के लिए, मान लीजिए कि मैं निम्नलिखित के रूप में Products की एक सूची है कि एक ProductType इकाई है:मैं Nullable EntitySet <> को कैसे परिभाषित कर सकता हूं?

[Table] 
public class ProductType 
{ 
    [Column(IsPrimaryKey = true, IsDbGenerated = true)] 
    public int Id { get; private set; } 
    [Column] 
    public string Name { get; set; } 

    private EntitySet<Product> _products; 
    [Association(Storage = "_products", ThisKey = "Id", OtherKey = "ProductTypeId")] 
    public EntitySet<Product> Products 
    { 
     get { return _products; } 
     set { _products.Assign(value); } 
    } 
} 

जब मैं एक नया ProductType ऐसे ही जोड़ने की कोशिश:

ProductType newType = new ProductType { Name = "newType" }; 
_productRepository.Add(newType);  //InsertOnSubmit() and SaveChanges() 

यह मुझे एक देता है Products रिक्त है अपवाद है कि:

Object reference not set to an instance of an object 

कई आर करने के लिए एक से एक है कि सभी संस्थाओं के साथ एक ही समस्या अन्य संस्थाओं के साथ elation। तो मैं EntitySet <> के लिए शून्य की अनुमति कैसे दे सकता हूं जो कई रिलेशन

उत्तर

3

में से एक का प्रतिनिधित्व करता है आप उत्पाद इकाई सेट के लिए जेनरेट किए गए कन्स्ट्रक्टर को डिफ़ॉल्ट रूप से याद कर रहे हैं। डिजाइनर जो आपके लिए उत्पन्न करता है उसके विरुद्ध इसकी तुलना करें। उदाहरण के लिए, नॉर्थविंड के लिए उत्पाद निर्माता इस तरह दिखता है:

public Product() 
    { 
     this._Order_Details = new EntitySet<Order_Detail>(new Action<Order_Detail>(this.attach_Order_Details), new Action<Order_Detail>(this.detach_Order_Details)); 
     this._Category = default(EntityRef<Category>); 
     this._Supplier = default(EntityRef<Supplier>); 
     OnCreated(); 
    } 
+0

धन्यवाद, +1 मेरी मैपिंग तुलना करने के लिए डिजाइनर का उपयोग कर के लिए, यह इस तरह ठीक काम करता है: 'this._products = नए EntitySet ((उत्पाद इकाई) => entity.ProductType = यह, (उत्पाद इकाई) => इकाई। उत्पाद प्रकार = शून्य); ' –

+0

सहायता करने में खुशी हुई। मैन्युअल रूप से इसे कैसे करना है, यह जानने का सबसे अच्छा तरीका यह है कि डिजाइनर क्या उत्पन्न करते हैं और फिर वहां से उन पर विस्तार करते हैं। –

संबंधित मुद्दे