如果加入其他数据库,如何在LINQ中排序
本文关键字:LINQ 排序 其他 数据库 如果 | 更新日期: 2023-09-27 18:15:03
LINQ排序
我有2数据库CustomerEntities和BillEntities我想从CustomerEntities中获取CustomerName并对其进行排序但它没有数据我想要。tolist()只一次因为如果多次使用它会很慢。tolist ()
using (var db1 = new CustomerEntities())
{ using (var db2 = new BillEntities())
{
var CustomerData = db1.Customer.Select(s=> new{s.CustomerCode,s.CustomerName}).ToList();
var BillData = (from t1 in db2.Bill
select new {
BillCode = t1.Billcode,
CustomerCode = t1.Customer,
CustomerName = ""; //have no data
});
}
if(sorting.status==true)
{
BillData= BillData.OrderBy(o=>o.CustomerName); //can't sort because CustomerName have no data
}
var data = BillData .Skip(sorting.start).Take(sorting.length).ToList(); // I want .ToList() just once time because it slow if used many .ToList()
foreach (var b in data)
{
var Customer = CustomerData.FirstOrDefault(f => f.CustomerCode==b.CustomerCode );
if(CustomerName>!=null)
{
r.CustomerName = Customer.CustomerName; //loop add data CustomerName
}
}
}
我不知道该怎么做。请帮帮我
我不确定我是否理解你的代码,但是这个呢:
var BillData = (from t1 in db2.Bill
select new {
BillCode = t1.Billcode,
CustomerCode = t1.Customer,
CustomerName = db1.Customer.FirstOrDefault(c => c.CustormerCode == t1.Customer)?.CustomerName
});
然后你在BillData中有对象保存CustomerName,你可以通过它来订购:
BillData.OrderBy(bd => bd.CustomerName);
如果您只是想从客户数据库中获取CustomerName并对其进行排序,这就是我要使用的。我使用了orderby降序,但你也可以使用OrderBy。
public List<Customer> getLogsByCustomerName(string customername)
{
using (var dbentites = new CustomerEntities())
{
var result = (from res in dbentites.Customer.OrderByDescending(_ => _.CustomerName)
where res.CustomerName == customername
select res).ToList();
return result.ToList();
}
}