У меня есть 2 связанные таблицы, которые являются сборками и деталями.
Класс моей сборки:
public class Assembly{
public int Id { get; set; }
public string No{ get; set; }
public string Name { get; set; }
public int? ParentId { get; set; }
public Assembly Parent { get; set; }
public List<Assembly> Children { get; set}
public List<Part> Parts { get; set; }
}
Класс моей детали:
public class Part{
public int Id { get; set; }
public string No { get; set; }
public string Name { get; set; }
public string Image { get; set; }
public int AssemblyId { get; set;}
public Assembly Assembly { get; set; }
}
Что яЯ сначала создаю сборки в контроллере. Затем, когда я создаю сборку, открывается страница загрузки файла, затем я загружаю файлы Excell и сопоставляю исключительные данные с моим объектом Part как ссылкой на мой объект Assembly. (Для каждой детали AssemblyId будет AssemblyId, полученный из маршрута)
Но с этим возникает огромная проблема, потому что большинство сборок имеют одну и ту же деталь или детали в своем списке деталей.
Например, предположим, что есть деталь, деталь №: 555, Part Name: Axle.
И давайте предположим, что я собираюсь создать 5 Assembly в моем проекте. И каждая сборка будет иметь данные, импортированные из разных файлов исключений.
И каждый сборщик содержит одну и ту же деталь, которая имеет свою часть номер: 555 и имя детали: ось, но, очевидно, с другим AssemblyId (FK).
Но все же в моей базе данных есть так много деталей, которые имеют одинаковую информацию со своими дубликатами, но небольшая разница состоит в том, что их столбец AssemblyId отличается и ссылается на другую сборку в AssemblyId.
What I 'Я хотел бы добиться, чтобы избежать этой ситуации ...
Я не хочу повторять свои данные. На самом деле я думаю, что решение, но я не уверен, что это хорошее решение. Я мог бы сделать заявление "если" и проверить, загружая данные из Excell, если в базе данных существует Часть с этой информацией, я не могу загрузить этот конкретныйстрока в таблицу, и использовать часть, которая уже существует. Но я думаю, что это замедлит мой проект.
Надеюсь, я четко спросил ...