LinqToEntities и внешние ключи - PullRequest
       23

LinqToEntities и внешние ключи

0 голосов
/ 28 ноября 2008

Я пытаюсь использовать 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 запись в базу данных, которая имеет один внешний ключ в другой таблице.

1 Ответ

1 голос
/ 24 декабря 2008

Для тех, кто плохо знаком с Linq To Entities и интересуется тем же, что и я ... да, именно таков Linq To Entities. Вам нужно ссылаться на реальный объект, а не просто давать внешний ключ.

Мне кажется, это может ухудшить производительность, но из того, что я сделал до сих пор, производительность совсем не плохая. На самом деле это было лучше, чем Linq To SQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...