var query = (from p in dc.ProgramHead
join u in dc.USER on p.Requestor equals u.USERID
where p.PaymentMethod == "Product"
&& (new int?[] { 3, 7, 8, 9, 10, 11, 12 }).Contains(p.State)
&& p.FunctionId != null
orderby p.PGM_NO descending
select new ProgramHeadReport()
{
OralceOrder = p.OracleOrderNumber,
PGM_NO = p.PGM_NO,
Requestor = u.FIRSTNAME + " " + u.LASTNAME,
ShipmentDate = p.ShipmentDate,
State = Enum.GetName(typeof(ADFSystem.BasicItem.Constants.Program_State), p.State)
}).ToList();
這種寫法編譯不報錯,運行報錯:
LINQ to Entities does not recognize the method 'System.String GetName(System.........
不用這種方案,怎么實作這個比較好啊,求大神指點!!!
uj5u.com熱心網友回復:
State = Enum.GetName(typeof(ADFSystem.BasicItem.Constants.Program_State), p.State)
uj5u.com熱心網友回復:
老生常談的問題。因為資料之前還是 IQueryable<>改成如下:
var query = (from p in dc.ProgramHead
join u in dc.USER on p.Requestor equals u.USERID
where p.PaymentMethod == "Product"
&& (new int?[] { 3, 7, 8, 9, 10, 11, 12 }).Contains(p.State)
&& p.FunctionId != null
orderby p.PGM_NO descending).ToList()
.select new ProgramHeadReport()
{
OralceOrder = p.OracleOrderNumber,
PGM_NO = p.PGM_NO,
Requestor = u.FIRSTNAME + " " + u.LASTNAME,
ShipmentDate = p.ShipmentDate,
State = Enum.GetName(typeof(ADFSystem.BasicItem.Constants.Program_State), p.State)
}.ToList();
uj5u.com熱心網友回復:
orderby p.PGM_NO descending).ToList()這里先 tolist()。把資料加載到本地
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/48141.html
標籤:LINQ
