7

एकल पृष्ठ आवेदन के लिए उदाहरण का उपयोग कर, मैं निम्नलिखित किया है TodoItem नियंत्रक:एकल पृष्ठ एप्लिकेशन, upshot.js, डीबीकॉन्टेक्स्ट और डीबीडेटा नियंत्रक: केवल इकाई मॉडल समर्थित हैं?

public partial class MVC4TestController : DbDataController<MVC4TestContext> 
{ 
    public IQueryable<TodoItem> GetTodoItems() 
    { 
     return DbContext.TodoItems.OrderBy(t => t.TodoItemId); 
    } 
} 


प्रश्न 1:
ऐसा नहीं है कि केवल EntityModels का समर्थन कर रहे है?
वास्तविक व्यू मॉडेल का उपयोग करते समय (मॉडल केवल दृश्यों के लिए उपयोग किया जाता है, डेटाबेस इकाई में 1: 1 मैपिंग के रूप में उपयोग नहीं किया जाता है), DbDataController इसका समर्थन नहीं करता है।

private static readonly CompiledExpressionMap<TodoItem, string> fullExpression = 
    DefaultTranslationOf<TodoItem>.Property(t => t.Full).Is(t => t.Title + "_" + t.IsDone); 

public string Full 
{ 
    get 
    { 
     return fullExpression.Evaluate(this); 
    } 
} 


प्रश्न 2::
क्या सिफारिश की डिजाइन जब एसपीए का उपयोग कर, DBContext और ViewModels है

इसके अलावा Linq.Translations या PropertyTranslator का उपयोग कर काम करने के लिए नहीं लगता है, इस कोड को निकालने देखते हैं?

उत्तर

3

जहां तक ​​मुझे अब तक पता है - यह "वास्तविक" मॉडल वर्गों के उपयोग पर जोर देता है जो डीबीकॉन्टेक्स्ट से बंधे हैं। मुझे आपके जैसा ही समस्या है - मुझे अपनी खुद की डीटीओ वस्तुओं का उपयोग करने की आवश्यकता है जो "फ्लैट" हैं। जेसन सीरियलाइजेशन वर्तमान में डेटा को क्रमबद्ध करने में सक्षम नहीं है जिसमें बाल वस्तुओं (चक्रीय संदर्भ) में मूल संदर्भ हैं। आम तौर पर मुझे किसी भी तरह से इकाई के पेड़ की आवश्यकता नहीं होती है इसलिए मैंने छोटे वर्ग बनाए जो पूरी तरह से दृश्य में फिट बैठते हैं। मैंने JsonResult के साथ एक सामान्य नियंत्रक का उपयोग करने की कोशिश की और डेटा पुनर्प्राप्त करने के बाद लौटा हुआ मॉडल ko.mapping.fromJS में पार्स किया। ठीक काम कर रहा है। लेकिन - आपको उन सभी अच्छी चीजों का ख्याल रखना है जो एमवीसी 4 जेनरेट किए गए व्यूमोडेल पहले से ही काम कर रहे हैं (जैसे नेविगेशन, इत्यादि)। शायद किसी को डीटीओ डेटा के साथ "नकली" डीबीसीएन्टेक्स्ट के लिए कामकाज मिल जाए।

+2

कुछ और प्रयोगों के बाद: आप अपनी खुद की डीटीओ ऑब्जेक्ट्स का उपयोग कर सकते हैं, जहां तक ​​आपके पास एक आईडी मैप की गई संपत्ति है जिसे [कुंजी] के रूप में चिह्नित किया गया है। लेकिन सामान को मचान करने के लिए आपको "असली" डीबी आधारित मॉडल होना चाहिए। नियंत्रक के बाद और सामान उत्पन्न होने के बाद आप आसानी से डीबीसी कंट्रोलर सामान को अपने स्वयं के डीटीओ से बदल सकते हैं और डेटा को अपनी पसंद के अनुसार बना सकते हैं। लेकिन कारण के लिए आप DbController के अद्यतन/सम्मिलित सहायक विधियों में उस के लिए DbContext का उपयोग नहीं कर सकते हैं। – Obiwan007

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