У меня есть следующие таблицы (сжатые для удобства чтения):
Вызов
ID CallerName CallerTime
Категории
ID КатегорияНазвание
CallCategories
CallID ID категории
Когда я смоделировал их в Entity Framework, таблица сопоставления «CallCategories» была исключена. Я не понимаю, как добавить запись в эту таблицу через EF.
Я зашел так далеко:
public void AddCategory(int callID, int categoryID)
{
using (var context = new CSMSEntities())
{
try
{
//Get the Call
var call = context.Calls.FirstOrDefault(x => x.callID == callID);
//Create a new Category
Category category = new Category();
category.categoryID = categoryID;
//Add the Category to the Call
call.Categories.Add(category);
context.SaveChanges();
}
catch (Exception ex)
{
throw ex;
}
}
}
Я использую «Добавить» или «Прикрепить». Кроме того, кажется, что я могу подходить к этому неправильно. Должен ли я на самом деле создавать новую категорию? Похоже, что это создаст фактическую запись в таблице категорий, когда я действительно хочу просто добавить запись в таблицу сопоставления «многие ко многим».
Я просто не могу уложить в голове некоторые вещи из EF. :-/
Любая помощь высоко ценится!
В ответ гном....
Я думаю, что вы на что-то здесь. Хотя, разве я не назвал бы "Добавить" (или это Прикрепить)? Нравиться:
//Get the Call
var call = context.Calls.FirstOrDefault(x => x.callID == callID);
//Find the Category and Add to the Call
Category category = context.Categories.FirstOrDefault(c => c.categoryID == categoryID);
call.Categories.Add(category);
context.SaveChanges();