我最近啓動了一個新的webforms項目,並決定將業務類與任何DBML引用分開。我的業務層類訪問離散的數據層方法,並且是DTO的返回集合。因此,數據層可以投射DTO的類似如下:Linq To SQL和DTO的分離問題
(from c in dataContext.Customers
where c.Active == true
select new DTO.Customer
{
CustomerID = c.CustomerID,
Name = c.CustomerName,
...
}).ToList()
雖然建立DTO對象增加了工作,這種感覺就像一個更好的方法,以緊密結合業務&之間的數據層和意味着我可以測試業務層,而不一個數據庫存在。
我的問題是,這是一個很好的做法嗎?是否有生成DTO的方法(可能通過SQLMetal),以及隨着項目的進展可能會遇到什麼其他問題。
我已經發布了一些關於外部XML映射的鏈接:http://stackoverflow.com/questions/988872/linq-to-sql-external-mapping/1136039#1136039 – alexandrul 2009-07-16 07:58:29