Сохранение связанных объектов в SubSonic - PullRequest
0 голосов
/ 14 мая 2009

У меня есть 2 таблицы, Order и OrderItem, которые имеют отношение 1-много.

Когда я добавляю новый заказ в интерфейс, как мне создать отношения. Э.Г.

(Order and OrderItem generated by SubSonic).
Order order = new Order();
//populate order details.


OrderItem item = new OrderItem();
//populate orderItem details.

Как тогда установить отношения так, чтобы при сохранении их в базе данных они сохраняли правильные значения внешнего ключа, что-то вроде

item.setParent(order);

EDIT:

Я пытался использовать

order.OrderItemRecords().Add(item);

но все равно появляется ошибка при обновлении БД.

1 Ответ

3 голосов
/ 14 мая 2009
(Order and OrderItem generated by SubSonic).
Order order = new Order();
//populate order details.


OrderItem item = new OrderItem();
//populate orderItem details.

item.Order = order;   //THIS LINE SETS THE PARENT OBJECT TO ABOVE ORDER

Просто не забудьте завершить транзакцию и вызвать методы сохранения, чтобы зафиксировать эту информацию в вашей базе данных. Вам нужно будет добавить ссылку на пространство имен System.Transactions в вашем проекте, а затем ссылку в вашем классе.

* 1004 например *

   using (TransactionScope scope = new TransactionScope())
    {
        try
        {
            Order order = new Order();
            //populate order details.
            order.Save(); //Commit to DB


            OrderItem item = new OrderItem();
            //populate orderItem details.

            item.Order = order;   //THIS LINE SETS THE PARENT OBJECT TO ABOVE ORDER

            item.Save();  //Commit to DB

            //complete you transaction
            scope.Complete();

        }
        catch (System.Data.SqlClient.SqlException ex)
        {
            throw ex;
        }
    }
...