Nano Hash - криптовалюты, майнинг, программирование

Получение данных из одной таблицы SQL Azure, добавление столбца, а затем заполнение другой таблицы

Я использую 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;
}

  • Вы пытаетесь: создать запись в таблице A; Эти записи содержат начальные данные в таблицах B и C? Или вы получаете всю эту разную информацию от пользователя? 18.07.2016
  • В этой части пользовательского ввода нет, поэтому ваш подход к первому вопросу правильный. Я хочу создать строки в таблице A (например, LaborTypes), используя исходные данные из таблицы B (например, SeedLaborTypes) и добавив CompanyID. 20.07.2016
  • Ответ ниже не попал в точку? 02.08.2016

Ответы:


1

Что вам нужно сделать, так это написать запрос, извлекающий данные из таблицы B, и выполнить оператор Insert для таблицы A, используя результат (ы).

Я не знаю синтаксиса Linq специально; но, построив что-то похожее на ответ @Murph за этой ссылкой, я думаю, что это может сработать.

var fromB= from b in TableB
           where ... ;//identify the row/data from table B
// you may need to make fromB populate from the DB here. 
var toInsert = ...; //construct your object with the desired data   
// do other necessary things here        
TableA.InsertAllOnSubmit(toInsert); 
dc.SubmitChanges(); // Submit your changes
26.07.2016
  • Спасибо за ответ. Я не понимаю, что делать для // создания вашего объекта с желаемыми данными. Это действительно суть моего вопроса ... как мне добавить столбец данных к результатам запроса, возвращаемым из исходной таблицы. На данный момент я использую таблицы данных, но надеюсь найти способ сделать это более эффективным способом. 09.08.2016
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..