為專案中使用所寫,擴充套件實現根據實體自動生成排序,支援多欄位排序。但必須與查詢實體大小寫匹配。
一,建立排序實體。
/// /// 排序條件模型
///
public class orderitemmodel
public string sorttype
}
二,擴充套件orderby。
public static iqueryableorderby(this iqueryablesource, listoims)
);if (!bnull) return source;
string propertyname = string.empty, sortdirection = string.empty;
var sorts = oims.toarray();
for (int i = 0; i < sorts.length; i++)
else
expression methodcallexpression = expression.call(typeof(queryable), methodname,
new type ,
source.expression, expression.quote(lambda));
source = source.provider.createquery(methodcallexpression);
}return source;
}
三,使用方法。在使用排序表示式的位置傳入。
listoims = new list,
new orderitemmodel,
new orderitemmodel,
};var result = getasync(oims);
result裡就是按上面三個欄位和排序方式的結果。 EF呼叫sp,EF自動生成返回型別
在sp中新增下面的紅色部分,就是執行sp時的返回型別,後面在ef中新增該sp後,ef會在dbcontext檔案中,自動生成呼叫該sp的 包括返回型別等,如下 public virtual objectresultsp customerrequestwriteoff nullableqrtransid...
EF 隨機排序
資料上下文擴充套件 public partial class dbdatacontext iunitofwork 對於從linq to sql遷移過來的開發者,對隨機排序不會感到陌生,直接為datacontext新增乙個方法再配合反射就可以實現隨機排序了,如面所示 而對於linq to entity...
MVC5 模型 生成EF
在看本篇之前請先去了解一下ef以及如何利用模型生成資料庫 看code first就可以了。等你了解了ef以後 在models裡面建立3個類 genre,artist,album public class album public virtual int genreid 外來鍵屬性 乙個流派可能存在多...