更新外键关系是常见的数据操作,例如 添加一个"员工",并设置其"类别"外键,如下两种使用EF的代码哪个更简洁且高效?
方法1:
Product p = new Product {
Name = “Bovril”,
Category = ctx.Categories.First(c => c.ID == 5)
};
ctx.AddToProducts(p);
ctx.SaveChanges();
方法2:
Category category = new Category { ID = 5};
ctx.AttachTo(“Categories”,category);
Product product = new Product {
Name = “Bovril”,
Category = category
};
ctx.AddToProducts(product);
ctx.SaveChanges();
方法2使用的category对象是一个stub entity,使用它比方法1节省了一次查询操作,效率自然要好!
同样使用stub entity可以进行Delete,Update等操作 - 详细: MSDN Meta-Me blog Tip 26