的恆定值,我不知道這有什麼錯此查詢 - 它不斷給我這個錯誤:錯誤LINQ到SQL:無法創建類型
Unable to create a constant value of type 'OvertimeProject.DataCore.tbl_Promotion'. Only primitive types or enumeration types are supported in this context.
這裏是我的LINQ語句:
public IEnumerable<StaffJoin> GetOrderStaffByDepartment(int DepID, DateTime DATE)
{
using (var Context = new CRMDBEntities())
{
var result = (from pro2 in Context.tbl_Promotion
where pro2.PromotionDate <= DATE && pro2.DepID==DepID
select pro2).ToList();
var result2 = (from Re in result
group Re by Re.StaffID into g2
join prop in Context.tbl_Promotion on g2.Max(c => c.PromotionID) equals prop.PromotionID
select prop).ToList();
var result3 = (from s in Context.tbl_STaff
join
promotion in result2 on s.StaffID equals promotion.StaffID
join
position in Context.tbl_Position on promotion.PositionID equals position.PositionID
select new StaffJoin{Staff= s,Promotion= promotion,Position= position}).ToList();
return result3;
}
}
這裏是我的課,我想,以填補與返回的數據:
public class StaffJoin
{
public tbl_STaff Staff { get; set; }
public tbl_Promotion Promotion { get; set; }
public tbl_Position Position { get; set; }
}
...這裏是我的導航模式instructure igated屬性:
tbl_Staff tbl_Promotion tbl_Position
--------- -------------- -------------
StaffID 0.1 PromotionID 0.1 PositionID
DepID PromotionDate PositionName
StaffName * StaffID PositionBase
Chek PositionID * Avaiilibilty
Avilibility
------- --------------- --------------
Navigation Navigation Navigation
---------- -------------- ----------------
tbl_Department tbl_Position tbl_Promotion
tbl_Promotion tbl_Staff
我需要的是這樣的:
所有工作人員爲特定的部門,加上最大推廣特定日期後每一個工作人員,加上位置信息與促進
我懷疑,你可以通過刪除'ToList()在'result'和''電話解決一切result2'。坦率地說,這不是必須的,你通過將LINQ與對象以及LINQ與實體混合在一起來使事情變得複雜。 – 2013-05-09 01:11:10
我們對這篇文章所做的編輯量意味着我們真的不知道你在問什麼,而且你沒有很好地解釋自己。 – gunr2171 2013-05-09 01:24:35
@JeffMercado我會更進一步與您的建議。我同意在這種情況下,'.ToList()'調用是問題。然而,考慮到'CRMDBEntities'的生命週期,我們真的想把最後一行改爲'return result3.ToList();否則你將得到一個與'CRMDBEntities'有關的異常已經被丟棄。 – Aron 2013-05-09 02:39:10