2011-08-25 16 views
5

मेरे पास एक सेवा है जिसमें सेवा घोषणाएं हैं। इस तालिका के लिए मेरे पास 1: 1 पॉको है - सिवाय इसके कि इसमें एक अतिरिक्त फ़ील्ड है। मेरी क्वेरी में यह लेखक के उपयोगकर्ता नाम में शामिल है, तालिका में केवल लेखक आईडी है।क्या मैंने PetaPoco.IgnoreAttribute को गलत समझा है?

मैंने सोचा कि मैं सिर्फ इस क्षेत्र पर [Ignore] विशेषता पर काम कर सकता हूं, और फिर समस्याओं के बिना आवेषण/अपडेट के लिए पीओसीओ का उपयोग करने में सक्षम हो सकता हूं? मेरी समस्या यह है कि [Ignore] विशेषता के साथ, BrukerNavn फ़ील्ड भर नहीं है। और विशेषता के बिना, यह सम्मिलित/अद्यतन पर बैंग हो जाता है।

[TableName("tblDriftsmelding")] 
[PrimaryKey("DriftID")] 
public class Driftsmelding 
{ 
          public int DriftID { get; set; } 
    [Column("tittel")]  public string Tittel { get; set; } 
          public string Tekst { get; set; } 
          public string HTMLTekst { get; set; } 
    [Column("gyldigfra")] public DateTime? Fra { get; set; } 
    [Column("gyldigtil")] public DateTime? Til { get; set; } 
    [Column("publisert")] public bool Publisert { get; set; } 
    [Column("CreatedBy")] public int? BrukerID { get; set; } 
          public string BrukerNavn { get; set; } 
} 

यह पॉको है। अंत में "BrukerNavn" फ़ील्ड को छोड़कर, तालिका 1: 1 मैपिंग है।

select d.DriftID, d.Tekst, d.Created, d.gyldigtil, d.gyldigfra, d.publisert, d.tittel, d.HTMLTekst, d.createdby, b.brukerident as BrukerNavn 
    from tblDriftsmelding d 
    left outer join tblbruker b on d.CreatedBy = b.brukerid 
    order by DriftID desc 

यह क्वेरी है जो पीओसीओ को खिलाती है। (, ऊपर पाठ में बोल्ड में ध्यान दें, वास्तविक सवाल है, क्योंकि यह एक तरह से पाठ के बाकी के साथ मिश्रित किया गया) (मैं भी select d.*, b.brukerid उपयोग करने की कोशिश की है। कोई अंतर)

उत्तर

8

मुझे लगता है कि आपको क्या चाहिए [ResultColumn] विशेषता - यदि आपकी क्वेरी में इसके लिए डेटा है तो यह कॉलम भर जाएगा और यह इन्सर्ट और अपडेट के लिए उपयोग नहीं किया जाएगा।

आप यहां और अधिक देख सकते हैं ->http://www.toptensoftware.com/Articles/101/PetaPoco-Working-with-Joins

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