7

मैं एंटिटी फ्रेमवर्क 4 कोड-फर्स्ट सीटीपी 5 में वास्तव में रिश्ते कैसे कर सकता हूं इस पर एक छोटा सा उदाहरण लेना चाहता हूं?आप वास्तव में एंटिटी फ्रेमवर्क 4 कोड-फर्स्ट सीटीपी 5 में रिश्ते कैसे करते हैं?

संबंधों के इन प्रकार के लिए एक उदाहरण के लिए प्यार करोगे:

* one-to-many 
* many-to-many 

धन्यवाद एक बहुत!

उत्तर

10

वन को

public class One 
{ 
    public int Id {get;set;} 
    public virtual Two RelationTwo {get;set;} 
} 

public class Two 
{ 
public int Id {get;set;} 
public virtual One RelationOne {get;set;} 
} 

बातें नोट करने के लिए, यह आभासी हो गया है

एक कई

public class One 
{ 
    public int Id {get;set;} 
    public virtual ICollection<Two> RelationTwo {get;set;} 
} 

public class Two 
{ 
public int Id {get;set;} 
public virtual One RelationOne {get;set;} 
} 

कई करने के लिए करने के लिए कई

public class One 
{ 
    public int Id {get;set;} 
    public virtual ICollection<Two> RelationTwo {get;set;} 
} 

public class Two 
{ 
public int Id {get;set;} 
public virtual ICollection<One> RelationOne {get;set;} 
} 

टिप्पणी यह ​​ICollection

के बाद लिंक हो सकता है उपयोगी, click और click

आशा इस मदद करता है की जरूरत है कि।

संपादित

कई लोगों के लिए एक को शामिल करने अपडेट किया गया।

संपादित करें # 2

चालान < करने के लिए एक संभावित शामिल करने के लिए अपडेट किया गया -> उत्पाद परिदृश्य जो टिप्पणी द्वारा अनुरोध किया गया था।

ध्यान दें: इस अपरीक्षित है, लेकिन सही दिशा

public class Invoice 
{ 
    public int Id {get;set;} 
    //.. etc. other details on invoice, linking to shipping address etc. 

    public virtual ICollection<InvoiceProduct> Items {get;set;} 
} 

public class InvoiceProduct 
{ 
    public int Id {get;set;} 
    public int Quantity {get;set;} 
    public decimal Price {get;set;} // possibly calculated 
    //.. other details such as discounts maybe 

    public virtual Product Product {get;set;} 
    public virtual Invoice Order {get;set;} // maybe but not required 
} 

public class Product 
{ 
    public int Id {get;set;} 
    //.. other details about product 
} 

में डाल देना चाहिए का उपयोग करते हुए इस आप तो चालान पर सभी वस्तुओं के माध्यम से पुनरावृति सकता है और उसके बाद foreach चालान विवरण दिखाने में सक्षम होना प्रत्येक आइटम के साथ-साथ उत्पाद से विवरण भी।

+2

मुझे विश्वास नहीं है कि उन्हें आभासी होने की आवश्यकता है (लेकिन मैं उन्हें आभासी बनाने की अत्यधिक अनुशंसा करता हूं)। यदि उन्हें वर्चुअल के रूप में चिह्नित नहीं किया गया है, तो रिश्ते अभी भी मौजूद रहेगा, लेकिन ईएफ आलसी लोडिंग का उपयोग नहीं करेगा और अगर संबंधित इकाई सत्र में लोड हो गई है तो केवल रिश्ते के दूसरे पक्ष को लोड करेगी। साथ ही, एक-से-कई लोगों के लिए, इसे कैसे किया जा सकता है, आपके उत्तर से अनुमानित किया जा सकता है, दोनों पक्षों के संदर्भों की आवश्यकता नहीं है, हालांकि यह आवेदन की ज़रूरतों पर निर्भर हो सकता है। –

+1

बस एक और लिंक जो आप चाहते हैं में दिलचस्पी लेता है, मैंने इसे पहले कोड के लिए काफी उपयोगी परिचय पाया: http://weblogs.asp.net/scottgu/archive/2010/07/16/code-first-development-with -entity-framework-4.aspx – Manatherin

+0

अभी तक उत्तर के लिए धन्यवाद। एक और चीज़। यदि यह बिल संदर्भ में है जहां आपके चालान में आइटम लाइन है। इसमें एक रिश्ते की मेज शामिल होगी। आप इस परिदृश्य के साथ कैसे आगे बढ़ते हैं? – Rushino

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