ADO.NET Entity Framework - Составной первичный ключ CRUD - PullRequest
2 голосов
/ 14 сентября 2010

у меня есть следующие объекты alt text

Как видите, у BudgetPost есть составной первичный ключ, который является внешним ключом для сущностей Category и Budget. Мой вопрос, что является лучшим способом сделать 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();

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

Заранее спасибо!

1 Ответ

2 голосов
/ 14 сентября 2010

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

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

newBudget.BudgetPosts.Add(newBudget);

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

...