0

我有一个Users实体集和一个Administrators实体集。我想从 DBContext中获取可以是 aIEnumerable<Users>或 a的项目列表IEnumerable<Administrators>

我希望能够做到

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 是 typeof DbSet,我需要 typeofUsers

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女巫,我们的对象有一个枚举器。问题是我们无法将此对象发送到强类型视图。

因此我们必须对其进行强制转换。如果我们不知道我们希望将其强制转换为的类,那么我们可以将其强制转换为对象类型。我们要将它发送到的视图将对强类型对象进行特定的转换。

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

现在我们有了一个可以用于多个强类型视图的控制器。

于 2012-11-14T13:39:57.383 回答