最近在大神的教导下,学习EF的框架,这个东西确实简化了MVC框架的工作量,让程序员把精力放到业务上。
public dynamic Page(int PageIndex, int PageSize)
{
var aa = acdb.Users.OrderBy(user => user.UserId).Skip((PageIndex - 1) * PageSize).Take(PageSize).Select(use => new
{
ID = use.UserId,
姓名 = use.UserName,
日期 = use.RegDate
}).ToList();
return aa;
}
将EF中的业务逻辑封装,返回一个未知的类型,可以用(objec[所有类型的父类型] 或者上面的 dynamic )。
不过这样有个问题:获取到这样的类型,如果是直接绑定数据源没有问题,但如果你要for或者foreach,他就无法认识该类型,这里就用到了反射机制。
using System.Reflection;
foreach (var item in Page(2, 5))
{
Type type = item.GetType();
var pi = type.GetProperty("姓名");
MessageBox.Show(pi.GetValue(item));
}
通过这样反射出OJBICE类型的属性获取相应的值。