我正在创建我的第一个基于linq的项目。 DAL由LinqToSQL类组成。逻辑层只是另一个用于保持简单的DLL。
我想知道如何将var对象(选择查询的结果)从登录层传递到表示层?
我应该在Login层和Presentation Layer之间编写自己的DTO层来将BLL转移到Presentation层,还是应该将数据序列化为XML?
谢谢,Vikas
答案 0 :(得分:0)
只要您有机会将数据作为强类型类传递,我就会避免序列化。这就是你将要做的事情。我相信当.Net 4.0出来时你将能够传递vars,但在此之前,当你需要将它传递给另一个函数时,尝试将你的查询作为IEnumerable而不是var返回。
IE:
public class myClass
{
public int RecordID { get; set; }
public string Field1 { get; set; }
}
public void GetDataAndSendToOtherLayer()
{
using (DBDataContext db = new DBDataContext)
{
IEnumerable<myClass> Recs =
from tab in db.table
select new myClass
{
RecordID = tab.RecordID,
Field1 = tab.Field1
};
OtherLayer.DoSomething(Recs);
}
}
答案 1 :(得分:0)
将每行结果加载到一个对象中,将每个对象放入一个Collection中,然后将Collection从DAL传递到BOL,然后在将Collection传递给您的演示文稿之前,可以通过业务规则处理它。 / p>