2010-09-14 5 views
2

я следующие объекты alt textADO.NET Entity Framework - Композитный первичный ключ CRUD

как вы видите BudgetPost имеет составной первичный ключ, который является внешними ключами к субъектам категории и бюджету. Мой вопрос - лучший способ сделать CRUD? Есть ли способ отображать внешние ключи? Простая вставка должна выглядеть так:

Budget newBudget = new Budget(); 
       newBudget.BudgetName = textBox1.Text; 
       newBudget.FromDate = dateTimePicker1.Value; 
       newBudget.ToDate = dateTimePicker2.Value; 

       newBudget.BudgetPosts.Add(new BudgetPost { FKBudgetID = newBudget.BudgetID, FKCategoryID = 21, BudgetAmount = 700 }); 
       db.AddToBudgets(newBudget); 
       db.SaveChanges(); 

Есть ли другой способ?

Заранее благодарен!

ответ

2

Используйте навигационные свойства.

BudgetPost newBudgetPost = new BudgetPost(); 
newBudgetPost.Budget = newBudget; 
newBudgetPost.Category = newCategory; //loaded somewhere, or created on the fly 

newBudget.BudgetPosts.Add(newBudget); 

То есть использовать силу рамки Entity. Сначала создайте свою запись о присоединении и сопоставьте бюджет и категорию. Затем добавьте budgetPost в бюджет. Все должны писать, когда вы вызываете SaveChanges.

+0

Спасибо за ваш ответ – ilkin

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