Entity Framework - Как установить ценность ассоциации? - PullRequest
0 голосов
/ 15 сентября 2009

Допустим, у меня есть класс Person и класс Order с внешними ключами в БД. Модель EF помечает Person списком заказов и Order с экземпляром Person.

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

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

Ответы [ 2 ]

3 голосов
/ 15 сентября 2009

Чтобы назначить сущность 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 голосов
/ 15 сентября 2009

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...