Linq to sql to object list

Please consider the following tables:

TblDocument

docID, levelID, name 101, 201, AAA 102, 201, BBB 103, 201, CCC 104, 202, DDD 105, 202, EEE 

TblPage

 pgID, docID, pgNo 1, 101, 1 2, 102, 1 3, 102, 2 4, 103, 1 5, 104, 1 6, 105, 1 

TblFieldName

 fieldNameID, levelID, fieldName 1, 201, WrittenBy 2, 201, VerifiedBy 3, 201, DocumentName 

TblFieldValue

 docID, fieldNameID, fieldValue 101, 1, James 101, 2, Bond 101, 3, Essay on something 102, 1, Krister 102, 2, Holm 102, 3, Dame it or not! 

 public class Document { public int DocID {get; set;} public int LevelID {get; set;} public string Name {get; set;} public List<Field> Metadata { get { return (_fields); } set { _fields = value; } } private List<Field> _fields = new List<Field>(); } public class Field { public FieldNameID {get; set;} public FieldName {get; set;} public FieldValue {get; set;} } 

Now I am trying to extract data from a database using linq, which works fine.

 using (DBDataContext context = new DBDataContext()) { List<Document> doc = (from d in context.TblDocuments join p in context.TblPages on d.docID equals p.docID into dpgrp from dp in dpgrp.Where(f => f.docID == d.docID).DefaultIfEmpty() where d.levelID == 201 select new Document { DocumentID = d.docID, LevelID = d.levID }).ToList<Document>(); } 

Can someone help me how can I get the values ​​of the fields in the list?

 using (DBDataContext context = new DBDataContext()) { List<Document> doc = (from d in context.TblDocuments join p in context.TblPages on d.docID equals p.docID into dpgrp from dp in dpgrp.Where(f => f.docID == d.docID).DefaultIfEmpty() where d.levID == 201 select new Document { DocumentID = d.docID, LevelID = d.levID Metadata = ??????? // how to achieve this? as it is a list }).ToList<Document>(); } 
0
source share
1 answer

I suggest using DataLoadOptions for L2S

 options.LoadWith<Document>(d => d.Metadata); 
0
source

Source: https://habr.com/ru/post/943725/


All Articles