2009-09-15 2 views
0

Предположим, у меня есть класс Person и класс Order с внешними ключами в БД. Модель EF будет отмечать личность списком ордеров и ордеров с экземпляром Person.Entity Framework - Как установить ценность ассоциации?

Если я хочу установить Лицо для заказа, действительно ли мне нужно сделать это с экземпляром Person?

Разве нет способа уменьшить это, скажем, только с помощью PersonID?

+0

Вам не нужно использовать slimmed down, 'virtual' означает, что он« тонкий »для вызовов в базе данных –

ответ

3

Чтобы назначить Person объект на заказ без загрузки Person сущности, вы должны сделать что-то вроде этого:

var db = new OneToManyEntities(); 
var Order = new Order { OrderId = 100, OrderName = "Order name" }; 
Order. PersonReference.EntityKey = new EntityKey("OneToManyEntities.Person ","PersonID",10); 
db.AddToOrders(Order); 
db.SaveChanges(); 
2

ответ озадачил является правильным для EF v1. Это боль. Если вы не возражаете, дополнительный запрос, вы можете установить свойство лаконично:

int id = 1; 
Order.Person = context.Persons.Where(x => x.PersonID == id).FirstOrDefault(); 

Entity Framework v4 будет иметь «FK ассоциации», который является фантазии термин напрямую устанавливаемыми внешних ключей.

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