【发布时间】:2012-08-15 19:51:03
【问题描述】:
在尝试删除数据库中的记录并随后使用 LINQ 重新创建时,我收到错误:无法添加已存在的实体。 虽然记录被删除了。
我正在使用从方法中的 LINQ 查询中获得的数据初始化我的 Sales_header 对象 SelectOrdersByOrderID(OrderID).
如果Salesheader的OrderID满足某个条件,我想删除数据库中的记录(Delete(Sales_header SalesHeader)),给对象添加附加值,在数据库中插入一条新记录(Insert(Sales_header SalesHeader) ))。
我不想更新记录,但删除它并重新创建它。
Sales_header SalesHeader = new Sales_header();
SalesHeader = SalesHeaderClass.SelectOrdersByOrderID(OrderID) as Sales_header;
if (SalesHeader.OrderID == *certain value*)
{
SalesHeaderClass.Delete(SalesHeader);
SalesHeader.Orderdate = DateTime.Today;
SalesHeader.Ordertime = DateTime.Now;
SalesHeaderClass.Insert(SalesHeader);
}
...
SalesHeaderClass 中通过 LINQ 选择 SalesHeader 的方法
public static object SelectOrdersByOrderID(int OrderID)
{
var Query = (from p in dc.Sales_headers
where p.OrderID.Equals(OrderID)
select p).SingleOrDefault();
return Query;
SalesHeaderClass 中通过 LINQ 插入 SalesHeader 的方法
public static void Insert(Sales_header SalesHeader)
{
dc.Sales_headers.InsertOnSubmit(SalesHeader);
dc.SubmitChanges();
}
SalesHeaderClass 中通过 LINQ 删除 SalesHeader 的方法
public static void Delete(Sales_header SalesHeader)
{
var DelOrder = (from p in dc.Sales_headers
where p.OrderID == SalesHeader.OrderID
select p).Single();
dc.Sales_headers.DeleteOnSubmit(DelOrder);
dc.SubmitChanges();
}
我必须做什么才能插入记录? 创建具有相同值的新对象没有帮助。
【问题讨论】:
-
您是否有理由避免记录更新?
-
因为,在进一步的开发中,我想重用它来添加新的销售线和删除旧的销售线。更新还不够,因为可能会有新的销售线。