我使用Net Core 1.1和Entity Framework Core以及流暢的API。我寫一個簡單的擴展方法DbSet以顯示其實體控制檯:如何獲得DbSet的主鍵?
public static class DbSetExtension
{
public static void Show<T>(this DbSet<T> set) where T:class
{
WriteLine();
WriteLine($"Set: {typeof(T).Name} - {set.Count()} objects.");
WriteLine();
foreach (var e in set)
{
WriteLine(e);
}
WriteLine();
WriteLine();
}
}
這工作,但我想向他們展示之前,必須按主鍵排序的實體。
var entityType = db.Model.FindEntityType(typeof(T));
var primaryKeyName = entityType.FindPrimaryKey().Properties.First().Name;
var set = db.Set<T>();
var orderedEntities = (set.OrderBy(e=> e.GetType().GetProperty(primaryKeyName).GetValue(e,null))).ToList();
是否有一種方式來獲得從DbSet
開始同樣的結果:如果我有DbContext
它會被輕易做這樣的事情實現的呢?