次のようなコマンドを実行するにはどうすればよいですか。
SELECT * FROM CATS
それは私がやったのとまったく同じように動作しmyContext.Cats.Where(c => true);
ますか?
Google は提案しましcontext.Database.ExecuteSqlCommand()
たが、それは int を返します。有望に見える context.Database.SqlQuery もありますが、返されたエンティティは追跡されていないと書かれており、これは重要であると思われます (追跡に関して EF がどのように機能するかについてはよくわかりません)。
追跡に使用することを提案しSystem.Data.Entity.DbSet<TEntity>.SqlQuery(Object[])
ていますが、これが何を意味するのか、どのように実装するのか完全にはわかりません。
さらに混乱させることに加えて、任意のテーブルに対して特定のクエリを実行できるようにする汎用メソッドを作成したいと考えています。
これは、擬似コードで何が欲しいかの大まかな例です
public DbSet<T> ExecuteSelect<T>(DbContext context, string table)
{
DbSet<T> entities = context.RunSql("SELECT * FROM " + table);
return entities;
}
何か案は?