【发布时间】:2017-03-07 10:23:21
【问题描述】:
我使用带有 fluent API 的 Net Core 1.1 和 Entity Framework Core。我正在为 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();
}
}
这可行,但我希望在显示实体之前按主键对实体进行排序。如果我有DbContext,那么可以通过执行以下操作轻松完成:
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 开始得到相同的结果?
【问题讨论】:
标签: c# .net-core entity-framework-core