2008-11-28 4 views
0

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

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

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

Смежные вопросы