我有一个Users
实体集和一个Administrators
实体集。我想从DBContext获取可以是IEnumerable<Users>
或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是DbSet
的类型,我需要一个Users
答案 0 :(得分:0)
比我想象的更简单
Type typeDB = Type.GetType("Models.User");
var items = db.Database.SqlQuery(typeDB, "SELECT * FROM users WHERE IdUser = '"+id+"'");
项目现在是System.Data.Entity.Internal.InternalSqlQuery
女巫有一个带有我们对象的枚举器。问题是我们无法将此对象发送到强类型视图。
因此我们必须强制转换它。如果我们不知道要将它强制转换为类,那么我们可以将它转换为对象类型。我们要发送给它的视图将对强类型对象进行特定的转换。
return View("Users", items.Cast< object >().ElementAt(0));
现在我们有一个控制器可以用于多个强类型视图。