내가 가진 것은 대부분 테이블 키가 GUID가되는 데이터베이스입니다. 문제는 LINQ to Entity 문을 수행하려고 할 때 참조하는 엔터티 중 하나에있는 Guid와 사용할 수있는 Guid를 비교하면 SQL이 실행되지 않습니다. 필자는 SQL 프로파일 러를 실행하면서 SQL Server 2008 R2를 사용하여 이것을 테스트했으며 SQL 문을 수행 할 때 SQL Server가 데이터베이스를 분명히 만들지 않았습니다. Guid 비교를 수행하면 SQL이 SQL Server로 전달되고 결과가 다시 반환됩니다. 예를 들어Entity Framework 5 SQL이 실행되지 않고 GUID가 비교됩니다.
: 나는 그런 x.itemType.CompareTo (나타내고 itemtype)와 같은 다른 방법을 시도했지만 아무것도 작동하지 않습니다
var itemType = new Guid("27733204-C1E6-4F93-BEAD-63C2C8EBC299");
var items from myDBContext.Items.Where(x => x.itemType == itemType);
. 본질적으로 내가 Guid를 가지고 있다면 linq 문 자체의 범위를 벗어나는 Where 절의 모든 유형을 사용하고 싶습니다. 서버에 발행 된 SQL은 전혀 없습니다.
누군가에게 답이 있기를 바랍니다. 현재 C# 4.5와 함께 Entity Framework 5를 사용하고 있습니다.
어떤 버전의 .NET? –
큰 따옴표를 사용해야하는 곳에 작은 따옴표를 사용하고 있습니다. 그래서 당신이 실제 코드를 게시하지 않는다고 느끼고 있습니다. 여기에있는 것은 컴파일되지 않습니다. 제공된 코드에서 – Khan
당신은 linq 표현식을 평가하지 않습니다 : myDBContext.Items.Where (x => x.itemType == itemType). 문제가 있다면 myDBContext.Items.Where (x => x.itemType == itemType) .ToArray();를 사용해보십시오. –