вставка нескольких данных в разные таблицы, используя linq для сущностей? - PullRequest
0 голосов
/ 21 апреля 2011

Я использую пример базы данных AdventureWorks в проекте. Я могу отображать информацию о клиенте (в разных магазинах) с помощью vStorewithDemographics. Это представление для извлечения разных частей данных из разных таблиц в базе данных.

Я хочу, чтобы моя программа вставляла нового клиента в базу данных, используя linq для сущностей, и я не знаю, как это сделать. Вставка в представление просто дает мне ошибки, которые я думал, что произойдет, потому что это не таблица.

Есть ли способ это сделать?

1 Ответ

1 голос
/ 21 апреля 2011

да, можно выполнить следующие шаги

-> Создать вместо триггера и использовать его, вы можете выполнить его Например, у меня есть две таблицы customer и customerContacts, последние содержат номер телефона клиента, а представление имени клиента предоставит всю информацию о клиенте, как показано ниже

создать представление [dbo]. [CustomerDetails] как выберите c. *, cc.PhoneNumber из клиента c внутреннее присоединение customerContact cc on c.CustomerId = cc.CustomerId

Для вставки необходимо создать вместо триггера

Создать TRIGGER trgInsteadOfUpdate ON dbo.CustomerDetails

ВМЕСТО ВСТАВКИ

AS

Объявление @Id int

- вставить в клиента ВСТАВИТЬ В ВЫБОР ПОЛЬЗОВАТЕЛЯ ВЫБЕРИТЕ CustomerName, CustomerAddress, State, Country FROM вставлено

Установить @Id = SCOPE_IDENTITY ()

- вставить в CustomerContact INSERT INTO customerContact SELECT PhoneNumber, @ Id FROm вставлено

GO

Когда для вставки в linq я могу использовать любой из следующих двух способов

// Вставить в представление

var newCusContact = new CustomerDetail {Country = "India", CustomerAddress = "bbb", CustomerName = "Tested", PhoneNumber = "7879654", State = "Delhi"};

db.CustomerDetails.InsertOnSubmit (newCusContact); * * тысяча тридцать-один * +1032 * db.SubmitChanges ();

OR

string insertStatement = "вставить в значения CustomerDetails (CustomerName, CustomerAddress, State, Country, PhoneNumber) ('DummyValue', 'DummyValue', 'Delhi', 'India', '123459')";

db.ExecuteQuery (insertStatement); * 1 039 * * +1040 * db.SubmitChanges ();

Надеюсь, это поможет вам

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