本周我刚刚开始使用Web API,我正在努力解决一些我觉得应该很简单但尚未找到答案的问题。也许我正在使用错误的术语进行搜索。
对API的一次调用通过GUID传递。我需要创建一个新实体(使用Entity Framework)并将其中一个关系设置为GUID中新传递的。此GUID是数据库中不同实体的ID。
我正在努力通过关系附加实体而不会获取整个实体。
例如,
public void DoWork(IList<Guid> userGuids)
{
Order order = new Order() // This is an entity
{
CreateDate = DateTime.Now,
CreatedBy = "Me",
Items = (from i in this.Model.Items
where i.Id == userGuid
select i).ToList<Item>();
}
Model.Orders.Add(order);
Model.SaveAll();
}
在上面,我必须进行数据库调用以将Item实体附加到Order。这有什么办法吗?当我只需要他们的ID时(我已经拥有了ID),这似乎非常冗余以检索整个实体对象!)
答案 0 :(得分:2)
一个解决方案是在此处询问的存根实体:Create new EF object with foreign key reference without loading whole rereference object
从博客剪辑 - 适用于您的情况:
Category category = new Category { ID = 5};
ctx.AttachTo(“Categories”,category);
Product product = new Product {
Name = “Bovril”,
Category = category
};
ctx.AddToProducts(product);
ctx.SaveChanges();
这种方式(在示例中)保存了Product而没有加载Category对象。