假设我有一个Person类和一个Order类,在DB中有外键。 EF模型将使用Person实例标记具有订单和订单列表的人。
如果我想为订单设置Person,我真的必须使用Person的实例吗?
没有一种简洁的方法可以这样做,比如说只有一个PersonID?
答案 0 :(得分:3)
要在不加载Person实体的情况下将Person实体分配给Order,您必须执行以下操作:
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();
答案 1 :(得分:2)
困惑的答案对于EF v1是正确的。这是一种痛苦。如果您不介意额外查询,可以简洁地设置属性:
int id = 1;
Order.Person = context.Persons.Where(x => x.PersonID == id).FirstOrDefault();
Entity Framework v4将具有“FK Associations”,这是可直接设置的外键的一个奇特术语。