私は流暢なAPIでNet Core 1.1とEntity Framework Coreを使用します。私は、コンソールでその実体を示すために、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
を持っていた場合、それは簡単にこのような何かを行うことによって達成されているのでしょうか?