重複の可能性:
. ObjectStateManagerObjectStateManager に同じキーを持つオブジェクトが既に存在します。同じキーを持つ複数のオブジェクトを追跡することはできません。
GridView の ObjectDataSource で Entity Framework を使用しました。updatemethod を試しているときに、実行時エラー メッセージが表示されました
同じキーを持つオブジェクトが ObjectStateManager に既に存在します。ObjectStateManager は、同じキーを持つ複数のオブジェクトを追跡できません。
これが私のaspxファイルコードです:
<asp:ObjectDataSource ID="odsCustomerList" runat="server" DataObjectTypeName="EF.POCO.Customer"
TypeName="EF.BusinessLayer.CustomerMaster" SelectMethod="ReadAllCustomer" SortParameterName="sortExpression"
ConflictDetection="CompareAllValues" OldValuesParameterFormatString="orig{0}"
UpdateMethod="UpdateCustomer" DeleteMethod="DeleteCustomer">
</asp:ObjectDataSource>
これが私のDAレイヤーのコードファイルです
public void UpdateCustomer(Customer customer, Customer origCustomer)
{
try
{
BusinessEntityBase.Entities.Customers.MergeOption = System.Data.Objects.MergeOption.NoTracking;
BusinessEntityBase.Entities.Customers.Attach(origCustomer);
BusinessEntityBase.Entities.ApplyCurrentValues("Customer", customer);
BusinessEntityBase.Entities.SaveChanges();
}
catch (Exception ex)
{
throw ex;
}
}
この問題を解決するのを手伝ってくれる人はいますか?