Я пытаюсь использовать LinqToEntities и только что заметил, что в модели данных нет полей внешнего ключа. Это, кажется, вызывает некоторые проблемы при попытке добавить запись.
Читая вокруг, я обнаружил, что при добавлении записи вы можете сделать что-то вроде этого (у продукта есть внешний ключ к таблице категорий).
Product myProduct = new Product();
myProduct.ProductName = ProductName;
myProduct.Categories = db.CategorySet.Where(c => c.CategoryID == CategoryID).First();
db.AddToProductSet(myProduct);
db.SaveChanges();
Я уверен, что есть лучший способ сделать это. Но мой вопрос на самом деле, так ли это работает в LinqToEntities? Мне кажется, что это намного сложнее, чем просто присвоить ему внешний ключ (т.е. myProduct.CategoryID = categoryid).
Если у меня в таблице 5 внешних ключей, мне нужно будет извлечь 5 объектов, чтобы связать их?
Я вижу, как выполнение вышеизложенного может иметь смысл и иметь преимущества, но не вижу преимущества, если вы просто пытаетесь добавить 1 запись в базу данных, которая имеет один внешний ключ в другой таблице.