2010-01-15 9 views
8

मुझे NHibernate 3 ट्रंक संस्करण में लिंक के साथ उत्सुक लोडिंग के साथ मदद की ज़रूरत है।NHibernate 3 में लिंकक का उपयोग करते समय उत्सुक भार 3

public class Post 
{ 
    public int Id {get;set;} 
    public IList<Tag> Tags { get;set;} 
    . 
    . 
    . 
} 

अब मैं धाराप्रवाह NHibernate में निम्नलिखित मानचित्रण

public class PostMap:ClassMap<Post> 
{ 
    public PostMap() 
    { 
     Table("Posts"); 
     Id(x => x.Id); 
     . 
     . 
     HasManyToMany(x => x.Tags) 
      .Table("PostsTags") 
      .ParentKeyColumn("PostId") 
      .ChildKeyColumn("TagId") 
      .Not.LazyLoad(); // this is not working.. 
    } 
} 

अब पदों प्राप्त करते समय, मैं टैग भी जरूरत है:

मैं इस तरह के कई-से-अनेक संबंध है उत्सुक भार के लिए। मुझे पता है कि यह मानदंड एपीआई और एचक्यूएल के साथ संभव है और SetFetchMode है जो मुझे उपयोग करना चाहिए। लेकिन लिंक का उपयोग करते समय SetFetchMode का उपयोग करने का कोई तरीका है?

उत्तर

13

इसके लिए समर्थन कुछ समय पहले ट्रंक में चला गया;

var query = session.Query<Post>().Where(bla bla).Fetch(p => p.Tags).ThenFetch(t => t.SomethingElse); 
+3

लायें के बाद आप एक अपवाद कहाँ या मिल जाएगा रखा जाना चाहिए। –

+0

@ निकोलस कैडिलैक, @ स्टेव स्ट्रॉन्ग - फिर आप एक फास्ट फ़ेच के बाद कहां जोड़ते हैं ?? निकोलस प्रतिक्रिया का कहना है कि उपर्युक्त काम नहीं करता है लेकिन इसका स्वीकार्य उत्तर है इसलिए मैं उलझन में हूं – leora

+0

@ निकोलस कैडिलैक, @ स्टेव स्ट्रॉन्ग - जब मैं इसे चलाता हूं, तो मुझे "अपवाद समर्थित नहीं" मिलता है – leora

-2

इस सूत्र समस्या का समाधान मेरे लिए: वाक्य रचना की तरह

var query = session.Query<Post>().Where(bla bla).Fetch(p => p.Tags); 

कुछ तो बदले में टैग एक और रिश्ता था, आप कर सकते हैं हो सकता है।

Linq for NHibernate - filtering on <many-to-one> foreign key causes extra lookup

var linqsession = session.Linq<FeedItem>(); 
linqsession.QueryOptions.RegisterCustomAction(c => c.SetResultTransformer(new DistinctRootEntityResultTransformer())); 
var feedItemQuery = from ad in linqsession.Expand("Ads") 
        where ad.Id == Id 
        select ad 
+0

एनएचबर्ननेट 3 में कोई प्रश्नोत्तरी नहीं है – ILya

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

  • कोई संबंधित समस्या नहीं^_^