我正在使用實體框架4.2(EntityFramework的.dll v4.0.30319)代碼的第一和具有LINQ查詢可被簡化爲:無法強制類型爲'System.Linq.EnumerableQuery`1 [Entities.Test]'的對象輸入'System.Data.Objects.ObjectQuery`1 [Entities.Test]'
IQueryable<Test> testQuery = from test in repository.Tests select test;
的repository.Tests
是IQueryable<Test>
直接在Enity框架的DbContext
實現爲DbSet<Test>
。
我注意到我的查詢在某種程度上區分大小寫,並且在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]「。
爲什麼會發生這種情況?
萬一有人用Google搜索這樣的:因爲這是在嘲笑數據(數組,而不是DB)單元測試執行的查詢擔任區分大小寫。 ;-) – Pol 2012-02-28 17:29:38