Tuesday, 15 April 2014

c# - Nested list database query in linq -



c# - Nested list database query in linq -

i trying fill view model database query includes info parent , kid tables.

i can fill parent view model part, includes list of type , not sure how fill kid list using linq.

here view models:

public class galleryfilevm { public galleryfilevm() { this.galleryfiledescvms = new list<galleryfiledescvm>(); } public int mediaid { get; set; } public int filetypeid { get; set; } public string filename { get; set; } public string filenameslug { get; set; } public int sortorder { get; set; } public int origh { get; set; } public int origw { get; set; } public list<galleryfiledescvm> galleryfiledescvms { get; set; } } public class galleryfiledescvm { public string drive { get; set; } public string prefix { get; set; } public string rdmprefix { get; set; } public int filetypeid { get; set; } public int filewidth { get; set; } public int fileheight { get; set; } public string fillclass { get; set; } }

and here linq far got:

pagepublishvm.galleryfilevms = ( tn in db.media fd in db.filedescendants tn.galleryid == galleryid && fd.fileid == tn.fileid orderby tn.sortorder select new galleryfilevm { mediaid = tn.mediaid, filetypeid = (int)tn.file.filetypeid, filename = tn.file.filename, filenameslug = tn.file.filenameslug, sortorder = tn.sortorder, origh = tn.origheight, origw = tn.origwidth, galleryfiledescvms = ????(this should list<galleryfiledescvm>) }) .tolist();

the ???? unclear. need fill fd range variable. though fd of type galleryfiledescvm.

thanks much help!

you need query filedescendants sub-query - slight rearrangement need.

this construction should - i'm unsure of schema galleryfiledescvm assignment off, should point in right direction

pagepublishvm.galleryfilevms = ( tn in db.media tn.galleryid == galleryid orderby tn.sortorder select new galleryfilevm { mediaid = tn.mediaid, filetypeid = (int)tn.file.filetypeid, filename = tn.file.filename, filenameslug = tn.file.filenameslug, sortorder = tn.sortorder, origh = tn.origheight, origw = tn.origwidth, galleryfiledescvms = (from fd in db.filedescendants fd.fileid == tn.fileid select new galleryfiledescvm { // guessing here because don't have schema drive = fd.drive, prefix = fd.prefix, // etc. }).tolist() }) .tolist();

c# linq entity-framework-5

No comments:

Post a Comment