Я использую Entity Framework 4.2 (EntityFramework.dll v4.0.30319) Code First и запрос LINQ, который можно упростить до:
IQueryable<Test> testQuery = from test in repository.Tests select test;
repository.Tests
- это IQueryable<Test>
, реализованный непосредственно как DbSet<Test>
в Enity Framework DbContext
.
Я заметил, что мои запросы как-то чувствительны к регистру с учетом без учета регистра в базе данных Microsoft SQL Server. Подозрительно, поэтому я хотел отследить SQL. Но когда я делаю это:
var trace = ((ObjectQuery<Test>)testQuery).ToTraceString();
Я получаю исключение:
Невозможно привести объект типа 'System.Linq.EnumerableQuery 1[Entities.Test]' to type 'System.Data.Objects.ObjectQuery
1 [Entities.Test]'.
Почему это происходит?