データベース内のレコードを削除して後で再作成しようとすると、LINQを使用して、次のエラーが発生します。既存のエンティティを追加できません。 レコードは削除されますが。
SelectOrdersByOrderID(OrderID)メソッドのLINQクエリから取得したデータを使用してSales_headerオブジェクトを初期化しています 。
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);
}
...
LINQを介してSalesHeaderを選択するSalesHeaderClassのメソッド
public static object SelectOrdersByOrderID(int OrderID)
{
var Query = (from p in dc.Sales_headers
where p.OrderID.Equals(OrderID)
select p).SingleOrDefault();
return Query;
LINQを介してSalesHeaderを挿入するSalesHeaderClassのメソッド
public static void Insert(Sales_header SalesHeader)
{
dc.Sales_headers.InsertOnSubmit(SalesHeader);
dc.SubmitChanges();
}
LINQを介してSalesHeaderを削除するSalesHeaderClassのメソッド
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();
}
レコードを挿入できるようにするにはどうすればよいですか?同じ値で新しいオブジェクトを作成しても役に立ちません。