Here我學會了如何計算相關的實體,而無需加載它們。問題是我在編譯時沒有實體類型。我的情況:計數相關的實體,而無需加載它們,非通用的方式
var postCount = context.Entry(someObject) // someObject received from somewhere
.Collection(somePropertyString)
.Query() // and here I got a non-generic IQueryable
.Count(); // which has no Count method
如果我試圖.Query().Cast<object>().Count()
我收到運行時異常這一行:
System.NotSupportedException發生的HResult = -2146233067
消息=無法轉換鍵入'...'鍵入 'System.Object'。 LINQ to Entities僅支持投射EDM原語 或枚舉類型。 Source = EntityFramework
那麼,如何在不加載它們的情況下計算相關實體,如果我在編譯時沒有實體類型呢?
對我來說,你必須使用反射來獲取一個'表達 >>'才能夠使用Collection'的'通用版本,可以讓你使用'Count()'。 –
tschmit007
2015-01-21 10:29:32