유형의 상수 값을 생성 할 수 없습니다. 오류 : 'mvcinfosite.ViewModels.GrpSearchHolder'유형의 상수 값을 생성 할 수 없습니다. 이 컨텍스트에서는 원시 형식 (예 : 'Int32, String 및 Guid') 만 지원됩니다.표현 트리 오류 :
오류를 어떻게 해결할 수 있습니까? 나는 내 문제를 보여주기 위해 간단한 예를 든다. 내 실제 프로젝트에서 MyGrp1, MyGrp2, MyGrp3은 ListBox로 대체됩니다. 내 데이터를 필터링하는 데 사용합니다.
public class MyGroupHolder
{
public string GrpName { get; set; }
public List<int ?> ListSelectedGrpDescID { get; set; }
}
public ActionResult Index()
{
//Database Context
DBEntities db = EntityFactory.GetEntity();
//Variables
List<MyGroupHolder> ListGrpHolder = new List<MyGroupHolder>();
//Imagine a 3 listbox (MyGrp1,MyGrp2,MyGrp3)
//Each listbox contains selected value.
MyGroupHolder MyGrp1 = new MyGroupHolder();
MyGrp1.GrpName = "Grp 1 Test";
MyGrp1.ListSelectedGrpDescID = new List<int?>();
MyGrp1.ListSelectedGrpDescID.Add(55);
MyGroupHolder MyGrp2 = new MyGroupHolder();
MyGrp2.GrpName = "Grp 2 Test";
MyGrp2.ListSelectedGrpDescID = new List<int?>();
MyGrp2.ListSelectedGrpDescID.Add(56);
MyGroupHolder MyGrp3 = new MyGroupHolder();
MyGrp3.GrpName = "Grp 3 Test";
MyGrp3.ListSelectedGrpDescID = new List<int?>();
MyGrp3.ListSelectedGrpDescID.Add(57);
ListGrpHolder.Add(MyGrp1);
ListGrpHolder.Add(MyGrp2);
ListGrpHolder.Add(MyGrp3);
//Getting a list of Locations base on the Group Filter
var ListLocation = db.Locations.Where(p => ListGrpHolder.Any(pg => pg.ListSelectedGrpDescID.Count == 0 || p.GroupLocations.Select(sg => sg.GrpDescID).Intersect(pg.ListSelectedGrpDescID).Any())).ToList();
return View();
}
내 식을 유효한 식으로 변환하는 사용자 지정 식 트리가 있습니까? –