我有一个使用 LinqToSQL 作为 DAL 的小型 winapp。我正在为给定人员创建所有 CaseNotes 的摘要 View ,其中一个字段是“详细信息”框。我只需要将该列的前 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;
}
回答
我将此张贴在这里,以防任何 future 的搜索者想知道问题上下文中的解决方案是什么样的。
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;
}
最佳答案
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))
};
此外,我建议包装您对 DataContext
s 的使用在 using
block 。
关于c# - 如何在 LINQ 调用中返回文本的前 50 个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1103726/