Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- OrderID InvAddrID DelAddrID InvStreet DelStreet InvZipCode DelZipCode
- 1 27 46 Main St Back St abc123 xyz789
- Create view OrderAddress as
- Select o.OrderID
- ,i.AddressID as InvID
- ,d.AddressID as DelID
- ...
- from Orders o
- left join Addresses i
- on o.InvAddressID= i.AddressID
- left join Addresses d
- on o.DelAddressID = i.AddressID
- var qry = from row in ctx.MainUdf(id)
- select new {
- Order = ctx.GetOrder(row.OrderId),
- InvoiceAddress = ctx.GetAddress(row.InvoiceAddressId),
- DeliveryAddress = ctx.GetAddress(row.DeliveryAddressId)) };
- public List<Order> GetOrders()
- {
- // our DBML classes
- List<Order> dbOrders = new List<Order>();
- using (OrderSystemDataContext db = new OrderSystemDataContext())
- {
- // call stored proc
- var spOrders = db.usp_GetOrders();
- foreach (var spOrder in spOrders)
- {
- Order ord = new Order();
- Address invAddr = new Address();
- Address delAddr = new Address();
- // set all the properties
- ord.OrderID = spOrder.OrderID;
- // add the invoice address
- invAddr.AddressID = spOrder.InvAddrID;
- invAddr.Street = spOrder.InvStreet;
- invAddr.ZipCode = spOrder.InvZipCode;
- ord.InvoiceAddress = invAddr;
- // add the delivery address
- delAddr.AddressID = spOrder.DelAddrID;
- delAddr.Street = spOrder.DelStreet;
- delAddr.ZipCode = spOrder.DelZipCode;
- ord.DeliveryAddress = delAddr;
- // add to the collection
- dbOrders.Add(ord);
- }
- }
- // at this point I have a List of orders I can query...
- return dbOrders;
- }
Add Comment
Please, Sign In to add comment