高分悬赏解决MVC+EF问题,关于字符串映射实体
switch ((string)opt["model"]){
case "EavAttribute":
var obj = db.EavAttribute.SqlQuery(sql);
totals = obj.Count();
pager = new Pager(currPage, totals, pageSize);
skip = pager.firstRow;
take = pager.listRows;
dataList = obj.Skip(skip).Take(take);
break;
case "Page":
var objp = db.Pages.SqlQuery(sql);
totals = objp.Count();
pager = new Pager(currPage, totals, pageSize);
skip = pager.firstRow;
take = pager.listRows;
dataList = objp.Skip(skip).Take(take);
break;
}大家看下代码,现在是写了一个通用方法,传一个字符串也就是(string)opt["model"](实际上这是一个实体类的名字)过来后,我现在用循环来得到相应的EF的数据,如果要是表多的话我要针对每个传入的字符串来循环下面的方法,在着我还要针对所有的表写循环里面的数据。我现在想针对(string)opt["model"](实际上这是一个实体类的名字)直接得到实体。也就是减少代码冗余,不用有多少表写多少个case下面的数据,就是能不能通过一个字符串也就是实体的名字直接得到实体数据?用反射怎么弄?或者IOC什么的其他方法,求大侠给个方法,最好是能写出具体例子? --------------------编程问答-------------------- 这种就可以用所谓的工厂方法,你可传入一个类型(Type),通过反射db获取特定的泛型,最后返回一个接口,然后对接口操作 Count()、Skip()等。 --------------------编程问答-------------------- 能在具体点吗?如何反射?要是可以的话可以给单独我QQ,可以细说下吗? --------------------编程问答-------------------- 简单点的话,用一个抽象多个不同的实现,就可以无限扩展! --------------------编程问答-------------------- 能在具体点吗?如何反射?要是可以的话可以给单独我QQ,可以细说下吗? --------------------编程问答-------------------- 不懂 路过 --------------------编程问答-------------------- 亲,为什么不考虑下泛型呢?
在EF中,除了这种方式“db.EavAttribute.SqlQuery(sql);” ,你想想还有没有其他方式呢? --------------------编程问答--------------------
--------------------编程问答--------------------
public class TestC<T> where T : class
{
public IQueryable<T> GetQuery()
{
MyDBEntities db = new MyDBEntities();
return db.CreateObjectSet<T>();
}
}
这个实现不了,我想要的是通过字符串也就是实体名字直接得到数据,你这还是用的泛型
补充:.NET技术 , ASP.NET