代码之家  ›  专栏  ›  技术社区  ›  ctorx

实体框架-如何设置关联值?

  •  0
  • ctorx  · 技术社区  · 17 年前

    假设我有一个Person类和一个Order类,数据库中有外键。EF模型将用一个订单列表和一个Person实例来标记Person。

    如果我想为订单设置人员,我真的需要为人员实例设置吗?

    难道没有一种简单的方法可以做到这一点吗,比如说仅仅用一个人?

    2 回复  |  直到 17 年前
        1
  •  3
  •   Puzzled    17 年前

    要在不加载个人实体的情况下将个人实体分配给订单,必须执行以下操作:

    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
  •  2
  •   Dave Swersky    17 年前

    困惑的答案对ef v1来说是正确的。这是一种痛苦。如果不介意额外的查询,可以简洁地设置属性:

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

    实体框架v4将具有“fk关联”,这是一个用于直接设置外键的花哨术语。