c# - Linq Query and Expected Results -- Distinct Field -


i have nested linq sql query used populate treeview. first select (title field) when being bound treeview showing of titles correctly, if there multiple occurences want show once. how can solve this?

i tried

              }).distinct().orderby(c => c.linenumber)  }).distinct(); 

full query

var results =     (from d in mcontext.docs      orderby d.title ascending      join b in mcontext.base on d.docid equals b.docid      join h in mcontext.viewdocitems on b.baseid equals h.baseid      h.itemid == mguid      select new      {          id = d.docid,           title = d.title,           classid = d.classid,          basehis =              (from c in d.base               select new basehistory()              {                  baseid = c.baseid,                  name = c.title,                  basefinal = c.final.value,                  linenumber = c.linenumber.value                  itemid = h.itemid              }).distinct().orderby(c => c.linenumber)     });  foreach(var r in results) {     var hist = new dochistory()      {         id = r.id,         title = r.title,         classid = r.classid;     };     foreach(var h in r.basehis)     {         hist.basehis.add(h);     }      mhistory.add(hist);  } 

replace distinct() by

.groupby(x => x.name).select(x => x.firstordefault()) 

that means grouping on name (i.e. title) , take first element of each group.

distinct not work, because, translated sql filters out records unique values each value of baseid, title, etc.


Comments

Popular posts from this blog

java - Jmockit String final length method mocking Issue -

asp.net - Razor Page Hosted on IIS 6 Fails Every Morning -

c++ - wxwidget compiling on windows command prompt -