나는 학교 프로젝트에서 일하고 있는데 저를 곤란하게 만든 오류가 있습니다. 엔티티 프레임 워크, 저장소 패턴 및 객체 데이터 소스를 사용하고 있습니다. 제품 ID 외래 키 (url 매개 변수)를 사용하여 productvariant를 삽입하려고하면 오류가 발생합니다.ObjectDataSource 통해 개체 전달 Asp.net 오류
오류
ObjectDataSource를 'ProductVariantObjectDataSource'유형 'FV_ProductVariant'의 매개 변수를 비 일반적인 방법 'InsertProductVariantByProductId'를 찾을 수 없습니다. 이미지
는링크
http://i.stack.imgur.com/fJeR1.png
스택 추적 :
[InvalidOperationException이 : ObjectDataSource를 'ProductVariantObjectDataSource은'유형의 매개 변수를 비 일반적인 방법 'InsertProductVariantByProductId'을 찾을 수 없습니다 'FV_ProductVariant'.] System.Web.UI.WebControls.ObjectDataSourceView.GetResolvedMethodData (유형 유형, 문자열 methodName, 유형 +1355789 System.Web.UI.WebControls.ObjectDataSourceView.ExecuteInsert (IDictionary 값) +339 System.Web.UI.DataSourceView.Insert (IDictionary 값, DataSourceViewOperationCallback 콜백) +89 +379 System.Web.UI.WebControls.DetailsView.HandleEvent (부울 causeValidation, 문자열 유효성 검사 그룹) UI.WebControls.DetailsView.OnBubbleEvent (Object source, EventArgs e) +95 System.Web.UI.Control.RaiseBubbleEvent (Object source, EventArgs args) +37 System.Web.UI.WebControls.DetailsViewRow.OnBubbleEvent (개체 소스 , EventArgs e) +112 System.Web.UI.Control.RaiseBubbleEvent (Object source, EventArgs args) +37 System.Web.UI.WebControls.LinkButton.OnCommand (CommandEventArgs e) +125 System.Web.UI.WebControls.LinkButton.RaisePostBackEvent String eventArgument)System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent (String eventArgument) +9 System.Web.UI.Page.RaisePostBackEvent (IPostBackEventHandler sourceControl, String eventArgument) +13 System.Web.UI.Page.RaisePostBackEvent (NameValueCollection postData) +176 System.Web.UI.Page.ObjectDataSource를가 IRepository
public void InsertProductVariantByProductId(FV_ProductVariant productVariant, int productId)
{
try
{
productRepository.InsertProductVariantByProductId(productVariant, productId);
}
catch (Exception ex)
{
throw ex;
}
}
으로 삽입된다 ProcessRequestMain (부울 includeStagesBeforeAsyncPoint 부울 includeStagesAfterAsyncPoint) 영문 페이지
<asp:ObjectDataSource ID="ProductVariantObjectDataSource" runat="server"
DataObjectTypeName="FV_ProductVariant" InsertMethod="InsertProductVariantByProductId"
SelectMethod="GetProductVariantByProductId" TypeName="ProductBL">
<InsertParameters>
<asp:Parameter Name="productVariant" Type="Object" />
<asp:QueryStringParameter Name="productId" QueryStringField="ProductId"
Type="Int32" />
</InsertParameters>
<SelectParameters>
<asp:QueryStringParameter Name="productId" QueryStringField="ProductId"
Type="Int32" />
</SelectParameters>
</asp:ObjectDataSource>
ProductBL 내의 5,563
오브젝트 소스
,void InsertProductVariantByProductId(FV_ProductVariant productVariant, int ProductId);
실제 저장소
public void InsertProductVariantByProductId(FV_ProductVariant productVariant, int productId)
{
try
{
productVariant.ProductVariantId = GenerateProductVariantID();
productVariant.ProductId = productId;
context.FV_ProductVariant.AddObject(productVariant);
context.SaveChanges();
}
catch (Exception ex)
{
throw ex;
}
}