Ref*_*din 8 c# linq-to-sql winforms
我有一个使用LinqToSQL的小winapp,因为它是DAL.我正在为给定的人创建所有CaseNotes的摘要视图,其中一个字段是Details框.我只需要将该列的前50个字符返回到我的treeview函数.
有关我如何做到这一点的任何提示?下面是我的TreeView函数如何获取其数据以供显示,而ContactDetails是相关列.
public static DataTable GetTreeViewCNotes(int personID)
{
var context = new MATRIXDataContext();
var caseNotesTree = from cn in context.tblCaseNotes
where cn.PersonID == personID
orderby cn.ContactDate
select new { cn.CaseNoteID,cn.ContactDate, cn.ParentNote, cn.IsCaseLog, cn.ContactDetails };
var dataTable = caseNotesTree.CopyLinqToDataTable();
context.Dispose();
return dataTable;
}
Run Code Online (Sandbox Code Playgroud)
我在这里发布这个,以防任何未来的搜索者想知道问题上下文中的解决方案是什么样的.
public static DataTable GetTreeViewCNotes(int personID)
{
DataTable dataTable;
using (var context = new MATRIXDataContext())
{
var caseNotesTree = from cn in context.tblCaseNotes
where cn.PersonID == personID
orderby cn.ContactDate
select new
{
cn.CaseNoteID,
cn.ContactDate,
cn.ParentNote,
cn.IsCaseLog,
ContactDetailsPreview = cn.ContactDetails.Substring(0,50)
};
dataTable = caseNotesTree.CopyLinqToDataTable();
}
return dataTable;
}
Run Code Online (Sandbox Code Playgroud)
jas*_*son 12
var caseNotesTree = from cn in context.tblCaseNotes
where cn.PersonID == personID
orderby cn.ContactDate
select new {
cn.CaseNoteID,
cn.ContactDate,
cn.ParentNote,
cn.IsCaseLog,
ContactDetailsClip = cn.ContactDetails.Substring(0, Math.Min(cn.ContactDetails.Length, 50))
};
Run Code Online (Sandbox Code Playgroud)
另外,我建议您包装使用DataContext小号的using块.
使用 LinQ,您还可以执行以下操作:
new string( myString.Take(50).ToArray() );
Run Code Online (Sandbox Code Playgroud)