Entity Framework вопрос новичка - PullRequest
1 голос
/ 09 июня 2010

У меня проблемы с пониманием EntityFramework

У меня есть таблица с именем «Категории», со столбцами «IdCategory, CategoryName».У меня есть таблица с именем «Страна» со столбцами «IdCountry, CountryName»

У меня есть таблица с именем «Продукт» с столбцами «IdProduct, IdCategory, IdCountry, ProductName»

При созданииде EDM это отображает все 3 объекта.У сущности продукта есть только 2 скалярных свойства "IdProduct, ProductName" и 2 свойства навигации "Категория, Страна"

Проблема, с которой я сталкиваюсь, заключается в том, что я хочу создать новый продукт

Product p = new SalesContext.Produc();
p.IdProduct = 1;
p.ProductName = "New Product";

Это единственные свойства, которые я могу установить.Проблема в том, что мне нужно установить de IdCategory и IdCountry, но эти свойства не существуют в Product Entity.У меня они есть только в качестве свойств навигации.

Так как мне установить IdCategory и IdCountry перед вызовом

SalesContext.AddProduct(p);
SalesContext.SaveChanges();

Пожалуйста, помогите мне!

Dev Enviroment: VS2008 sp1,.чистая 3.5 sp1, победа 7.

1 Ответ

3 голосов
/ 09 июня 2010

Предполагая, что вы правильно определили FK в БД, у вас должны быть ассоциации с другими таблицами, чтобы вы могли изменить свой код на:

Product p = new SalesContext.Product();
p.IdProduct = 1;
p.ProductName = "New Product";
p.Category = SalesContext.Categories.First(c => c.IdCategory == 1);
p.Country = SalesContext.Countries.First(c => c.IdCountry == 2);
SalesContext.AddProduct(p);
SalesContext.SaveChanges();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...