Please consider 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 fetch data from database using linq that 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 field values in a 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>();
}
I suggest to use
DataLoadOptionsfor L2S