엔티티 프레임 워크 6을 사용하고 있으며 "LINQ to Entities가 'System.String AsNonUnicode (System.String)'메서드를 인식하지 못합니다."예외가 있습니다. 여기 내가하는 일이있다.Entity Framework 6 및 AsNonUnicode 메서드
나는 전자 메일 열이 varchar (254) (비 유니 코드)로 정의 된 고객이 있습니다. 나는이 같은 내 쿼리를 넣어
Property(t => t.Email).IsUnicode(false);
:
var q = context.Customers.Where(t => t.Email == "[email protected]").Select(t => t.FirstName);
모든 것이 괜찮를, 상수는 유니 코드가 아닌 내지도에서
나는 다음 줄이있다. 그러나이 코드를 사용하면 :
string email = "[email protected]";
var q = context.Customers.Where(t => t.Email == email);
변수가 생성되는 변수가 색인을 사용하지 않게됩니다.
그래서,이 설계되어야 듯 EntityFunctions.AsNonUnicode 확장, 사용하여 시도 :
string email = "[email protected]";
var q = context.Customers.Where(t => t.Email == EntityFunctions.AsNonUnicode(email));
을하지만을 나는 방법 '선택 System.String AsNonUnicode를 인식하지 못하는 실체에 대한 예외 LINQ를 얻었다 (시스템 .String) '메서드 예외가 발생했습니다.
내가 뭘 잘못하고 있니?
EntityFunctions.AsNonUnicode는 EntityFramework.dll의 것이지 System.Data.Entity dll에서? 그것이 어떤 네임 스페이스인가 (System.Data.Entity.Core.Objects 여야 함)? 프로젝트에 System.Data.Entity.dll에 대한 참조가 있으면 제거해야합니다. – Pawel
그게 다야, 고마워. 답으로 답장하면 나는 그 답으로 표시 할 것입니다. –