エンティティ モデルを編集するために formview を使用しています。簡略化された formview ヘッダー コードは次のとおりです。
<asp:FormView ID="formViewSalon" runat="server" DataSourceID="OdsSalonData">
オブジェクト データ ソース コードは次のとおりです。
<asp:ObjectDataSource ID="OdsSalonData" runat="server"
DataObjectTypeName="WebApplication1.EDM.Salon"
DeleteMethod="DeleteSalon" InsertMethod="CreateNewSalon"
SelectMethod="GetSalonBySalonId"
TypeName="WebApplication1.EDM.SalonLogic"
UpdateMethod="UpdateSalon" OnSelecting="OdsSalonData_Selecting">
[保存/更新] ボタンのコードは次のとおりです。
protected void ButtonSave_Click(object sender, EventArgs e)
{
if (formViewSalon.CurrentMode == FormViewMode.Insert)
{
formViewSalon.InsertItem(true);
}
else if (formViewSalon.CurrentMode == FormViewMode.Edit)
{
formViewSalon.UpdateItem(true);
}
}
フォームを更新しているUpdateSalon
とき、次の行を実行しようとするとメソッドが起動します。
formViewSalon.UpdateItem(true);
しかし、新しいレコードを挿入しようとすると、CreateNewSalon
実行中にメソッドが起動しません:
formViewSalon.InsertItem(true);
2 つのメソッドの定義は次のとおりです。
[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Insert, true)]
public string CreateNewSalon(Salon newSalon) { }
と:
[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Update, true)]
public void UpdateSalon(Salon updatedSalon) { }
2つのプロセスの違いはどこにあるのか、私は夢中になっています。手がかり/アイデアはすぐにテストされるので、アドバイスしてください! ありがとう!