111,098
社区成员




namespace XXX.BLL.stop
{
public dynamic SelectByID(int id)
{
var itme = from a in EF数据源
join b in EF数据源 on a.goodid equals b.id
join c in EF数据源 on b.order_id equals c.id
where a.id==id
select new
{
a.id,
a.XXX,
a.XXXXX,
a.XXXXXXX,
a.XXX,
a.XX,
a.X,
a.XXXXXX,
b.JJJJ,
c.FFFFF
};
return itme.FirstOrDefault<dynamic>();
}
}
a.id;
a.JJJJ;
a.FFFFF;
了,千万不要在相像出什么“万能的反射层”。使用dynamic本来就是让你直截了当地读取dynamic数据了,它完成了中间操作,你就不要再自己发明一个中间转换层了。
我以前贴过一个“跨进程”的使用dynamic来读取数据的过程,虽然那是silverlight中的,但是好在微软的东西都是通用的,可以看到那里直接使用从网络接收到的数据,而不需要在dynamic之上来自己来个什么dynamic反射。。var a = new ExpandoObject(); //创建对象实例
dynamic b = a; //使用dynamic声明
b.f1 = "a"; //添加自定义属性
b.f2 = 123;
b.c = DateTime.Now;
var c = (IDictionary<string, object>)a; //使用可枚举的接口
foreach (var x in a)
Console.WriteLine("{0}->{1}", x.Key, x.Value);