假设我有一个客户和订单表:
_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;
在这种情况下,c为null,因为该顺序在数据库中不存在。如何在不保存订单的情况下利用导航属性?我想在保存之前做一些验证。
答案 0 :(得分:0)
可能是您可以将新对象附加到上下文,然后使用Context.Orders.Local和Local属性。 Local表示a表示所有Added,Unchanged和Modified实体的本地视图。
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);
有关https://msdn.microsoft.com/en-us/library/gg696248%28v=vs.113%29.aspx
上的本地的详情