我在动态LINQ 的VS2008示例中找到了一个示例,它允许您使用类似sql的字符串(例如,OrderBy("Name, Age DESC"))用于排序.不幸的是,包含的方法仅适用于IQueryable<T>;.有没有办法获得此功能IEnumerable<T>?
在我的通用存储库中,我有以下方法:
public virtual IEnumerable<T> GetAll<T>() where T : class
{
using (var ctx = new DataContext())
{
var table = ctx.GetTable<T>().ToList();
return table;
}
}
Run Code Online (Sandbox Code Playgroud)
T是Linq to Sql类,我希望能够在特定属性(即int SortOrder)上使用OrderBy.假如T具有属性名称"SortOrder",则在此属性上执行OrderBy.但我不确定如何实现这一目标.所以我需要一些帮助.谢谢!我觉得动态语言在做这类工作时真的很棒!
虽然编写类型安全的查询对于大多数场景来说都很好,但在某些情况下,您希望能够灵活地动态构建查询
这正是我面临的问题,我想知道这个linq动态助手是否可以制作成官方的.NET库.
如何在linq中对myScriptCellsCount.MyCellsCharactersCount(list int type)进行排序
public class MyExcelSheetsCells
{
public List<int> MyCellsCharactersCount { get; set; }
public MyExcelSheetsCells()
{
MyCellsCharactersCount = new List<int>();
}
}Run Code Online (Sandbox Code Playgroud)
void ArrangedDataList(DataTable dTable)
{
DAL.MyExcelSheets myexcelSheet = new DAL.MyExcelSheets();
myScriptCellsCount = new TestExceltoSql.DAL.MyExcelSheetsCells();
foreach (DataColumn col in dTable.Columns)
myexcelSheet.MyColumnNames.Add(col.ColumnName.ToString());
foreach(DataColumn dc in dTable.Columns)
foreach (DataRow dr in dTable.Rows)
myScriptCellsCount.MyCellsCharactersCount.Add(dr[dc].ToString().Length);
//How can i sort desc
//myScriptCellsCount.MyCellsCharactersCount = from list in myScriptCellsCount.MyCellsCharactersCount
// orderby list.CompareTo( descending
// select list;
CreatSqlTable(myexcelSheet.MyColumnNames, dTable.TableName, myScriptCellsCount.MyCellsCharactersCount[0].ToString());
myscript.WriteScript(myscript.SqlScripts);
}Run Code Online (Sandbox Code Playgroud)