2011-04-07 10 views
6

क्या कोई भी इस बात पर कोई सलाह दे सकता है कि एक संदर्भ या एकाधिक संदर्भ होने का सर्वोत्तम अभ्यास है या नहीं?ईएफ 4.1 कोड पहला - एकल संदर्भ या एकाधिक संदर्भ?

उदाहरण के लिए, मैं एक ही संदर्भ के रूप में निम्नानुसार होना चाहिए:

public class MyContext 
     : DbContext 
    { 
     public DbSet<Company> Companies { get; set; } 

     public DbSet<Country> Countries { get; set; } 

     protected override void OnModelCreating(DbModelBuilder modelBuilder) 
     { 
      modelBuilder.Configurations.Add(new CountryConfiguration()); 
      modelBuilder.Configurations.Add(new CompanyConfiguration()); 
      base.OnModelCreating(modelBuilder); 
     } 
    } 

या मैं बेहतर कंपनियों और देशों के लिए एक अलग संदर्भ बनाने होगा? तो ConpanyContext और CountryContext जो दोनों एक एकल डीबीसेट संपत्ति का पर्दाफाश करेंगे।

यह सिर्फ व्यक्तिगत पसंद हो सकता है, लेकिन हमारे डेटाबेस में 100 इकाइयों को शामिल किया जा रहा है। इसलिए मैं इस अधिकार को शुरू करने के लिए प्राप्त करना चाहता हूं।

बहुत धन्यवाद,

पॉल।

उत्तर

6

अंगूठे का एक साधारण नियम: एक स्कीमा/डोमेन, एक संदर्भ।

+0

यदि प्रदर्शन ठीक है तो मैं इसे इस तरह से करना चाहूंगा। मैं थोड़ा चिंतित हूं कि प्रदर्शन के उदाहरण का निर्माण करने पर प्रदर्शन क्या होगा जब इसे ऑनमोडेल क्रिएटिंग में 100+ कॉन्फ़िगरेशन कक्षाओं से निपटना होगा। इसे डब्ल्यूसीएफ सेवा में इसका उपयोग करके एक मुद्दा बनाया गया है जिससे यह प्रत्येक सेवा कॉल पर एक नया उदाहरण तैयार करेगा। – P2l

+0

@ पॉल: ऑनमोडेल क्रिएटिंग को ** ओएनसीई ** कहा जाता है, हर बार जब आप कोई उदाहरण नहीं बनाते हैं। –

+0

बस इसका परीक्षण किया और आप सही हैं। तब एक संदर्भ है। – P2l

2

यदि संभव हो, तो उन्हें सार्थक रेखाओं के साथ प्रयास करें और विभाजित करें।

किसी संदर्भ में 100 इकाइयां खराब लग सकती हैं, लेकिन अपने वैकल्पिक, 100 अलग-अलग संदर्भों के बारे में सोचें?

तो फिर तुम जैसे

using(CompanyContext cc = new CompanyContext) 
{ 
} 

using (CountryContext cc = new CountryContext) 
{ 
} 

काम करने के लिए आप एक से अधिक तालिकाओं आप संदर्भों नेस्ट है था क्वेरी करने के लिए की जरूरत है, तो होगा और यह बदसूरत मिलेगा। आप मैं कल्पना नहीं कर सकते प्रदर्शन है कि रास्ते पर जा रहा सुधार किया जाएगा की तरह

using(CompanyContext comp = new CompanyContext) 
    { 
     using (CountryContext country = new CountryContext) 
     { 
     } 
    } 

बातें करना शुरू करते हैं, लेकिन मुझे यकीन है कि रखरखाव एक दर्द होगा हूँ।

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