private void button1_Click(object sender, EventArgs e)
        {
            var headers = new OrderHeaderCollection();
            var details = new OrderDetailCollection();

            headers.Add(new OrderHeader()
            {
                OrderId = 6, CustomerId = 51, OrderedAt = Convert.ToDateTime("1/1/2008")
            });
            details.Add(new OrderDetail()
            {
                OrderId = 6, LineNumber = 1, ProductId = 12, Quantity = 2, Price = 15.95m
            });
            details.Add(new OrderDetail()
            {
                OrderId = 6, LineNumber = 2, ProductId = 57, Quantity = 1, Price = 59.99m
            });
            details.Add(new OrderDetail()
            {
                OrderId = 6, LineNumber = 3, ProductId = 36, Quantity = 10, Price = 8.50m
            });

            headers.Add(new OrderHeader()
            {
                OrderId = 7, CustomerId = 51, OrderedAt = Convert.ToDateTime("1/2/2008")
            });
            details.Add(new OrderDetail()
            {
                OrderId = 7, LineNumber = 1, ProductId = 23, Quantity = 2, Price = 79.50m
            });
            details.Add(new OrderDetail()
            {
                OrderId = 7, LineNumber = 2, ProductId = 78, Quantity = 1, Price = 3.25m
            });

            using (var conn = new SqlConnection("Data Source=.;Initial Catalog=MyDb;Integrated Security=True;"))
            {
                conn.Open();

                using (var cmd = new SqlCommand("uspInsertOrders", conn))
                {
                    cmd.CommandType = CommandType.StoredProcedure;

                    var headersParam = cmd.Parameters.AddWithValue("@OrderHeaders", headers);
                    var detailsParam = cmd.Parameters.AddWithValue("@OrderDetails", details);

                    headersParam.SqlDbType = SqlDbType.Structured;
                    detailsParam.SqlDbType = SqlDbType.Structured;

                    cmd.ExecuteNonQuery();
                }

                conn.Close();
            }
        }
Beispiel #2
0
        //internal static void EmployeeProc(IDataReader dr, FieldDictionary Fields, object Param)
        //{
        //    EmployeeCollection coll = Param as EmployeeCollection;
        //    Employee item = Mapper.ReadEmployee(dr, Fields);
        //    coll.Add(item);
        //}

        internal static void OrderDetailProc(IDataReader dr, FieldDictionary Fields, object Param)
        {
            OrderDetailCollection coll = Param as OrderDetailCollection;
            OrderDetail           item = Mapper.ReadOrderDetail(dr, Fields);

            coll.Add(item);
        }
        public static OrderDetailCollection ToDtoCollection(this EntityCollection <OrderDetailEntity> entities)
        {
            OnBeforeEntityCollectionToDtoCollection(entities);
            var seenObjects = new Hashtable();
            var collection  = new OrderDetailCollection();

            foreach (var entity in entities)
            {
                collection.Add(entity.ToDto(seenObjects, new Hashtable()));
            }
            OnAfterEntityCollectionToDtoCollection(entities, collection);
            return(collection);
        }