2012-08-16 29 views
6

मैं EntityFramework का उपयोग करता हूं, मैं बेनामी प्रकार का उपयोग करके आंशिक डेटा पूछताछ और लौट रहा हूं। वर्तमान में मैं IQueryable<dynamic> का उपयोग कर रहा हूं, यह काम करता है, लेकिन मैं यह जानना चाहता हूं कि यह करने का यह सही तरीका है या यदि कोई अन्य लौटने वाला डेटाटाइप है जिसे मैं नहीं जानता हूं।अज्ञात प्रकारों के लिए IQueryable

public IQueryable<dynamic> FindUpcomingEventsCustom(int daysFuture) 
{ 
    DateTime dateTimeNow = DateTime.UtcNow; 
    DateTime dateTimeFuture = dateTimeNow.AddDays(daysFuture); 
    return db.EventCustoms.Where(x => x.DataTimeStart > dateTimeNow & x.DataTimeStart <= dateTimeFuture) 
     .Select(y => new { y.EventId, y.EventTitle, y.DataTimeStart}); 
} 
+0

रिटर्न प्रकार के 'IQueryable' या' गतिशील 'भाग में समस्या क्या है? – nemesv

+0

हाय nemesv, कोई समस्या नहीं, मैं इस कारण से सी # और अज्ञात प्रकार के बारे में और जानना चाहता हूं। आपकी टिप्पणी – GibboK

उत्तर

9

आम तौर पर, आप केवल एक विधि के दायरे के भीतर अज्ञात प्रकारों का उपयोग करते हैं। आप गुमनाम प्रकार को कॉलर पर वापस नहीं करते हैं। यदि आप यही करना चाहते हैं, तो आपको कक्षा बनाना चाहिए और उसे वापस करना चाहिए:

public class Event 
{ 
    private readonly int _eventId; 
    private readonly string _eventTitle; 
    private readonly DateTime _dateTimeStart; 

    public Event(int eventId, string eventTitle, DateTime dateTimeStart) 
    { 
     _eventId = eventId; 
     _eventTitle = eventTitle; 
     _dateTimeStart = dateTimeStart; 
    } 

    public int EventId { get { return _eventId; } } 
    public string EventTitle { get { return _eventTitle; } } 
    public DateTime DateTimeStart{ get { return _dateTimeStart; } } 
} 



public IQueryable<Event> FindUpcomingEventsCustom(int daysFuture) 
{ 
    DateTime dateTimeNow = DateTime.UtcNow; 
    DateTime dateTimeFuture = dateTimeNow.AddDays(daysFuture); 
    return db.EventCustoms 
      .Where(x => x.DataTimeStart > dateTimeNow 
         && x.DataTimeStart <= dateTimeFuture) 
      .Select(y => new Event(y.EventId, y.EventTitle, y.DataTimeStart)); 
} 
+1

के लिए धन्यवाद, मैं कार्रवाई के परिणामस्वरूप अज्ञात प्रकार को वापस करने के बारे में सोच रहा था JSON – GibboK

+0

@GibboK: मुझे यकीन नहीं है कि मैं अनुसरण करता हूं। मुझे –

+0

पर "एक्शन" या JSON नहीं दिखाई देता है, हाँ, मैंने पूरा कोड अपलोड नहीं किया है, आपके उत्तर के लिए धन्यवाद – GibboK