選擇總計數我有尋呼和我whant使用簡單的SQL(EF7)在相同的查詢選擇計數:EF核心尋呼。在同一個查詢
var selectSql = " SELECT TotalCount = COUNT(*) OVER(), E.* FROM [table] E ...";
var rows = context.Set<EventTable>().FromSql<EventTable>(selectSql, parameters.Select(p => p.Value).ToArray()).ToArray();
這種選擇的作品,但我沒有TOTALCOUNT財產在我的事件表類,因爲我不會在數據庫中獲取該屬性。
我試着從實體跟蹤得到TOTALCOUNT屬性:
var row = rows.First();
var entity = context.Entry(row);
var totalCount = entity.Property<int>("TotalCount").CurrentValue;
但後來我得到錯誤: 對實體類型「事件表」屬性「TOTALCOUNT」找不到。確保該屬性存在並已包含在模型中。
然後我嘗試在模型中添加屬性是這樣的:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<EventTable>(b => b.Property<int>("TotalCount"));
}
它,當我whant選擇做工精細,但將在插入一個例外,因爲在數據庫列不存在。 並且EF將在遷移時添加該列。但我注意到,如果在遷移之前生成我添加行b.Property(「TotalCount」);進入ModelSnapshot類,它將避免在遷移時添加屬性。但插入問題仍然存在。
我試圖創建另一個類:
[NotMapped]
public class EventSearchTable : EventTable
{
[Column("total_count")]
[Required]
public int TotalCount { get; set; }
}
,然後做到這一點:
var rows = context.Set<EventSearchTable>().FromSql<EventSearchTable>(..);
它可以在EF6,但不能在EF7,我得到錯誤:值不能爲空。 參數名稱:entityType因爲我的DbContext中沒有實體。如果我將在我的DbContext上添加EventSearchTable類,那麼它會期望像歧義等列,並將在遷移中創建表。
任何想法如何獲得財產 TotalCount?
對不起,如果我的英文壞了。
當結果集是空的,但(至少在EF核心)這將失敗。頁面不爲空,但有一個內部的NullReferenceException。 –
結果集爲空時它確實失敗。任何解決方案? –