2015-06-05 5 views
0

Допустим, у меня есть Customers и Orders таблицу:Получить значение свойства навигации на объект, который не был сохранен

_Customers_ _Orders_ 
IdCustomer  OrderNumber 
Name   IdCustomer 
Etc   Etc 

Когда я использую рамки сущности его очень хорошо, как он создает навигационные свойства означает, что я могу сделать :

var context = new MyEntities(); 
var c = context.Orders.First().Customer; 

Это хорошо зарекомендовало себя, потому что первый заказ существует в базе данных. Как я могу воспользоваться навигационными свойствами, чтобы избежать создания соединения для записей, которые не существуют в базе данных. Другими словами:

var myNewOrder = new Order(){ IdCustomer =2, OrderNumber=3123, etc...} 
var context = new MyEntities(); 
var c = context.Orders.Attach(context).Customer; 

в этом случае с равно нулю, потому что порядок не существует в базе данных. Как я могу воспользоваться навигационными свойствами без сохранения заказа? Я хочу выполнить некоторую проверку перед сохранением.

ответ

0

Может быть, вы можете прикрепить новый объект к контексту, а затем использовать Context.Orders.Local с свойством Local. Локальный представляет a представляет локальный вид всех добавленных, неизмененных и модифицированных объектов.

var myNewOrder = new Order(){ IdCustomer =2, OrderNumber=3123, etc...} 
var context = new MyEntities(); 
var c = context.Orders.Attach(myNewOrder); 

var attatchedOrder = context.Orders.Local.SingleOrFirst(o => o.IdCustomer); 

Подробнее о Local на https://msdn.microsoft.com/en-us/library/gg696248%28v=vs.113%29.aspx

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