このクエリの何が問題なのかわかりません。次のエラーが表示され続けます。
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; }
}
...そして、ここにナビゲートされたプロパティを持つ私のモデル構造があります:
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
私が必要とするのはこれです:
特定の部門のすべてのスタッフと、特定の日付以降の各スタッフ メンバーの最大昇進、および昇進に関連する役職情報