一个Linq问题。实体在层间传递
使用Northwind数据库例子,不想在层间直接传实体数据,那么在显示层怎么处理从业务层返回的数据。例如下:class CustomerProc{
...
public GetExam(){
Northwind db=new Northwind();
return db.Customers.select(p=>new {p.CustomerId,p.Country}).ToArray();
}
...
}
上面业务类CustomerProc中GetExam()方法,返回了一个array数据(不想返回一个完整的实体List<Customer>)。
问题1:
在显示层中怎么得到array中每行的CustomerId,country?
问题2:
如果传递一个array使用不便,有什么好的办法没有?难道一定得传完整的实体?
--------------------编程问答-------------------- 上面打错:
class CustomerProc{
...
public array GetExam(){
Northwind db=new Northwind();
return db.Customers.select(p=>new {p.CustomerId,p.Country}).ToArray();
}
...
}
--------------------编程问答-------------------- 什么叫做显示层、业务层?
你的意思是不知道如何访问数组吗?或者是从来没见过对象数组?不明白你的问题。
传递数组“不便”是什么意思?如果连数组都不便于传递,请给出你的比较详细的编程背景,说明你正在做什么稀奇的项目? --------------------编程问答-------------------- 一个 .ToArray() 就是返回 Customer[] 类型的数组,这没有什么稀奇。对一般初级程序员,不需要再解释了。 --------------------编程问答-------------------- to # sp1234:
可能没说清楚,本人问的就是怎样得到array中的数据行.因为数据行中的数据是匿名的
new {p.CustomerID,p.Country}
--------------------编程问答-------------------- 返回的不是完整的实体Customer[],sp1234,看清再说话.
--------------------编程问答-------------------- 如果传递的是实体,
return db.Customers.select(p=>p).ToList();
那么可以很容易的处理数据.
CustomerProc customerProc=new CustomerProc();
List<Customer> customers=customerProc.GetExam();
......
但这样做,实体字段太多,可能对性能影响很大.所以才用array传部分数据.而array只有一个方法GetValue(),不知怎么处理数据才好.
--------------------编程问答--------------------
补充:.NET技术 , ASP.NET