Добавление связанных элементов с использованием Linq to SQL - PullRequest
0 голосов
/ 08 января 2011

У меня есть база данных с «транзакциями» и «транзакциями». Транзакция имеет базовые общие данные, а строки транзакции содержат значения компонентов, из которых состоит транзакция. В традиционном SQL я использовал бы транзакцию SQL (извините, теперь у нас есть неоднозначное слово ...), а затем вставлял транзакцию INTO ... получал значение ключа IDENTITY из новой строки таблицы транзакций, затем вставить в мою таблицу транзакции, используя столбец идентификации из таблицы транзакций в качестве внешнего ключа.

Есть ли хороший способ сделать это с помощью linq?

Вот что у меня есть:

account_transaction ac = new account_transaction
                             {
                                 transaction_date = DateTime.Now,
                                 is_credit = isCredit,
                                 account = (db.accounts.FirstOrDefault(a => a.account_id == accountid))
                             };

db.AddToaccount_transaction(ac);

db.SaveChanges();

Я думаю, что между 'AddToaccount_transaction (ac)' и 'db.SaveChanges ()' мне нужно добавить мои транзакции_line.

Ответы [ 2 ]

1 голос
/ 09 января 2011

Ответ выше верен, но я бы обернул все это в TransactionScope. Таким образом, если какая-либо часть этого запроса завершится с ошибкой, транзакция будет отменена. Просто не забудьте вызвать метод scope.Complete () перед закрытием соединения. http://msdn.microsoft.com/en-us/library/ms251686(VS.80).aspx

1 голос
/ 08 января 2011

Вы должны просто иметь возможность создавать новые transaction_line объекты и устанавливать для стороннего объекта значение ac.В LINQ-to-SQL вы работаете с объектными сущностями вместо явных ключей.Установив в качестве объекта сущности объект ac, вы дадите слою указание определить, что это за ключ, и установите его для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...