【发布时间】:2013-04-04 05:24:17
【问题描述】:
我想插入一个具有以下结构的主从细节:
每个销售都有一个 ID、日期和一个客户、员工和销售详情。 每个销售明细都有一个件数和价格,当然还有一个参考它的主人和产品是什么。
我尝试了以下代码,但无法正常工作:
private void GenerarNota()
{
EntityCollection<SalesDetail> details = new EntityCollection<SalesDetail>();
foreach (ListItem item in _productList)
{
SalesDetail detail = new SalesDetail();
detail.Product = db.Product.FirstOrDefault(p => p.Id == item.Id);
detail.Pieces = item.Pieces;
detail.Price = item.Price;
details.Add(detail);
}
Sale sale = new Sale
{
Client = (Client )txtCliente.Item,
Employee = (Employee )txtEmp.Item,
SalesDetail = details
};
db.AddToSale(sale);
db.SaveChanges();
}
我得到的异常:
无法将对象添加到 EntityCollection 或 实体引用。附加到 ObjectContext 的对象不能 被添加到不属于的 EntityCollection 或 EntityReference 与源对象相关联。
我做错了吗?我阅读了有关附加和分离对象的信息,但在我尝试后发现违反了 FK 约束。
你能告诉我我做错了什么吗?或者这是另一种方法吗?我是 LINQ 的新手,我可以用纯 SQL 完美地做到这一点,但我想了解它。
【问题讨论】:
-
那么“venta”是从哪里来的???
-
我很抱歉。我的主要语言是西班牙语,所以大部分标识符都是西班牙语。我翻译了它们,但忘记了最后一部分。
标签: c# linq entity-framework