当前位置:编程学习 > C#/ASP.NET >>

一个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
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,