[英]Join and order in LINQ C#
我得到了以下基本代碼:
var test = SqlCompact(
"OrderID", "ASC", 5, 2,
out count, out sortCriteria, out sql);
這將調用SqlCompact方法,該方法執行表訂單,員工和客戶的聯接,然后通過輸入(例如“ ASC”和“列名”)進行訂單聯接。
我有加入查詢的工作,但不確定如何根據輸入排序結果。 這是我的SqlCompact方法的代碼:
public List<MyJoin> SqlCompact(
string sort, string sortDir, int rowsPerPage, int page,
out int count, out string sortCriteria, out string sql) {
var cec = new SqlCeConnection(
string.Format(@"Data Source={0}\Northwind.sdf", Path));
var nwd = new DataContext(cec);
nwd.Log = new StringWriter();
var orders = nwd.GetTable<Order>();
var employees = nwd.GetTable<Employee>(); //
var customers = nwd.GetTable<Customer>(); //
count = orders.Count();
sortCriteria = "";
var q = (from od in orders
join em in employees on od.EmployeeID equals em.EmployeeID
join ct in customers on od.CustomerID equals ct.CustomerID
//orderby em.EmployeeID
select new
{
od.OrderID,
od.ShipCountry,
ct.CompanyName,
ct.ContactName,
FullName = em.FirstName + ' '+ em.LastName,
}).ToList();
q.Dump();
sortCriteria:由sort和sortDir組成的字符串–采用Dynamic LINQ可直接使用的格式,例如
OrderID ASC
ContactName DESC, OrderID DESC
這就是您要執行的操作:if(sort ==“ OrderId”){q = q.OrderBy(x => x.OrderId); }
不過,將列名作為字符串傳遞並不是一種好方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.