Я использую C # и LINQ для извлечения / передачи данных, хранящихся в SQL Azure. В базовом сценарии у нас есть таблица Customer, содержащая всех клиентов (PK = CompanyID) и вспомогательные таблицы, такие как LaborTypes и Materials (таблица FK CompanyID to Customer).
Когда новый клиент регистрируется, в таблице «Клиенты» создается новая запись. После этого я хочу загрузить набор материалов и типов труда по умолчанию из отдельной таблицы. Это достаточно просто, если я просто хотел скопировать данные прямо из одной таблицы в другую, но чтобы заполнить существующие таблицы для нового клиента, мне нужно взять исходные данные (например, LaborType, LaborDescription), добавить CompanyID для каждой строки исходных данных, затем выполните вставку в существующую таблицу.
Какой лучший способ добиться этого с помощью C # и LINQ с SQL Azure?
Пример прямой вставки из пользовательского ввода для LaborTypes приведен ниже для контекстной справки.
using (var context = GetContext(memCustomer))
{
var u = GetUserByUsername(context, memUser);
var l = (from lbr in context.LaborTypes
where lbr.LaborType1.ToLower() == laborType
&& lbr.Company == u.Company
select lbr).FirstOrDefault();
if (l == null)
{
l = new AccountDB.LaborType();
l.Company = u.Company;
l.Description = laborDescription;
l.LaborType1 = laborType;
l.FlatRate = flatRate;
l.HourlyRate = hourlyRate;
context.LaborTypes.InsertOnSubmit(l);
context.SubmitChanges();
}
result = true;
}