namespace DevLeap.Linq.Architecture.NTier.DataLayer.LinqToXml {
public class CustomerDal :
BaseDal<DomainModel.Customer,
IEnumerable<DomainModel.Customer>, String> {

// ... Kd vynechn ...

public override DomainModel.Customer Read(string key) {
var result =
(from x in this.NorthwindXml.Descendants("customer")
where x.Element("customerID").Value == key
select new DomainModel.Customer {
CustomerID = (String)x.Element("customerID"),
Address = (String)x.Element("address"),
City = (String)x.Element("city"),
CompanyName = (String)x.Element("companyName"),
ContactName = (String)x.Element("contactName"),
ContactTitle = (String)x.Element("contactTitle"),
Country = (String)x.Element("country"),
Fax = (String)x.Element("fax"),
Phone = (String)x.Element("phone"),
PostalCode = (String)x.Element("postalCode"),
Region = (String)x.Element("region"),
// Pevd seznam objednvek zkaznka
// LINQ to SQL na seznam objednvek definovanch 
// v domnovm modelu.
Orders = new
List<DevLeap.Linq.Architecture.NTier.DomainModel.Order>(
from ox in x.Element("orders").Elements("order")
select new DomainModel.Order {
OrderID = (Int32)ox.Element("orderID"),
CustomerID = (String)x.Element("customerID"),
EmployeeID = (String.IsNullOrEmpty(
ox.Element("employeeID").Value) ? null :
(Int32?)ox.Element("employeeID")),
Freight = (String.IsNullOrEmpty(
ox.Element("freight").Value) ? null :
(Decimal?)ox.Element("freight")),
OrderDate = (String.IsNullOrEmpty(
ox.Element("orderDate").Value) ? null :
(DateTime?)ox.Element("orderDate")),
RequiredDate = (String.IsNullOrEmpty(
ox.Element("requiredDate").Value) ? null :
(DateTime?)ox.Element("requiredDate")),
ShipAddress = (String)ox.Element("shipAddress"),
ShipCity = (String)ox.Element("shipCity"),
ShipCountry = (String)ox.Element("shipCountry"),
ShipName = (String)ox.Element("shipName"),
ShippedDate = (String.IsNullOrEmpty(
ox.Element("shippedDate").Value) ? null :
(DateTime?)ox.Element("shippedDate")),
ShipPostalCode = (String)ox.Element("shipPostalCode"),
ShipRegion = (String)ox.Element("shipRegion"),
ShipVia = (String.IsNullOrEmpty(
ox.Element("shipVia").Value) ? null :
(Int32?)ox.Element("shipVia")),
})
}).First();
return (result);
}
// ... Kd vynechn ...
}
}
