0

Usersエンティティ セットとエンティティ セットがありAdministratorsます。IEnumerable<Users>またはIEnumerable<Administrators>DBContext から取得できるアイテムのリストを取得したい

できるようになりたい

Type dbContextType = db.GetType();

Type tableType = dbContextType.GetProperty("users", 
    BindingFlags.IgnoreCase | BindingFlags.Public | BindingFlags.Instance
).PropertyType;

var items = db.Database.SqlQuery(tableType , "SELECT * FROM users");

問題は、tableType が typeofDbSetであり、typeof が必要なことです。Users

4

1 に答える 1

0

思ったより簡単

Type typeDB = Type.GetType("Models.User");

var items = db.Database.SqlQuery(typeDB, "SELECT * FROM users WHERE IdUser = '"+id+"'");

items はSystem.Data.Entity.Internal.InternalSqlQuery、オブジェクトの Enumerator を持つウィッチになりました。問題は、このオブジェクトを厳密に型指定されたビューに送信できないことです。

したがって、キャストする必要があります。キャスト先のクラスがわからない場合は、オブジェクト型にキャストできます。そして、送信先のビューは、厳密に型指定されたオブジェクトへの特定のキャストを行います。

return View("Users", items.Cast< object >().ElementAt(0));

これで、複数の厳密に型指定されたビューに使用できる 1 つのコントローラーができました。

于 2012-11-14T13:39:57.383 に答える