LINQ to SQL的到对象列表 [英] Linq to sql into object list
本文介绍了LINQ to SQL的到对象列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
请考虑下面的表格:
TblDocument
的docID, levelID,名称
101,201,AAA
102,201,血脑屏障
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,字段名
1,201,WrittenBy
2,201,VerifiedBy
3,201,DocumentName
TblFieldValue
的docID,fieldNameID,fieldValue方法
101,1,詹姆斯
101,2,债券
101,3,东西
102,1征文,克里斯特
102, 2,霍尔姆
102,3,圣母院与否!
公开类文件
{
公众诠释的DocID {搞定;设置;}
公众诠释LevelID {搞定;设置;}
公共字符串名称{;设置;}
公开名单<外勤及GT;元数据
{
{返回(_fields); }
集合{_fields =价值; }
}
私有列表<外勤及GT; _fields =新的List<外勤及GT;();
}
公共类字段
{
公共FieldNameID {搞定;设置;}
公共字段名{搞定;设置;}
公共fieldValue方法{搞定;设置;}
}
现在,我正尝试获取来自使用LINQ数据库数据。正常工作
使用(DBDataContext上下文=新DBDataContext())
{
名单<文件> DOC =(从D在context.TblDocuments
在d.docID context.TblPages加入p等价于p.docID到来自DP在dpgrp.Where(dpgrp
F => f.docID = D .docID).DefaultIfEmpty()
,其中d.levelID == 201
选择新的文档
{
DocumentID = d.docID,
LevelID = d.levID $ 。b $ b})了ToList<文件>();
}
有人能帮助我,我怎样才能在列表中的字段值?
使用(DBDataContext上下文=新DBDataContext())
{
名单<文件> DOC =(从D在context.TblDocuments
在d.docID context.TblPages加入p等价于p.docID到来自DP在dpgrp.Where(dpgrp
F => f.docID = D .docID).DefaultIfEmpty()
,其中d.levID == 201
选择新的文档
{
DocumentID = d.docID,
LevelID = d.levID
=元// ???????如何实现这一目标,因为它是一个列表
})了ToList<?&文件GT;();
}
解决方案
我建议使用 DataLoadOptions
为L2S
options.LoadWith<文件>(D = D 1和D .Metadata);
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 DataLoadOptions
for L2S
options.LoadWith<Document>(d => d.Metadata);
这篇关于LINQ to SQL的到对象列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文