저는 ASP.NET을 처음 사용하기 때문에 사용자 지정 ObjectDataSource Insert 메서드를 구현하려고합니다. 기본 비즈니스 메서드는 단일 개체 매개 변수로 잘 작동합니다. 그러나 추가 매개 변수를 추가하면 비즈니스 메서드가 호출되지 않습니다.ObjectDataSource가 여분의 매개 변수가있을 때 Insert 메서드를 호출하지 않습니다.
여기 내 코드입니다. Insert()는 항상 호출되지만 InsertWithParams()는 호출하지 않습니다.
// Business Layer
public class MyObject
{
public MyObject() {}
public string Foo { get; set;}
}
namespace MyLogic {
public static Insert(MyObject m)
{
// ... do DB insert
}
public static InsertWithParams(MyObject m, string p)
{
// ... do more fancy DB insert
}
} // MyLogic
는 다음 ObjectDataSource를 선언 감안할 때, "InsertWithParams"와 "MyObjectDS_Inserting은"호출되지 않습니다.
그러나 "MyLogic.Insert"가 대신 지정되면 이벤트와 함께 호출됩니다. 또한 InsertWithParams에서 p 매개 변수를 제거하면 호출됩니다.
<asp:ObjectDataSource runat="server" ID="MyObjectDS"
TypeName="Business.MyLogic"
DataObjectTypeName="Business.MyObject"
InsertMethod="InsertWithParams"
OnInserting="MyObjectDS_Inserting"
>
<InsertParameters>
<asp:Parameter Name="m" Type="Object" />
<asp:Parameter Name="p" Type="String" />
</InsertParameters>
</asp:ObjectDataSource>
는 그래서 내가 ObjectDataSource를의 삽입 방법에 매개 변수를 추가 할 수 없습니다이 경우 보인다. 선언 된 InsertParameters를 추가하거나 제거해도 차이가없는 것 같습니다.
네는 데이터 소스 선언에서 여기서 objectTypeName = "Business.MyObject"을 제거한 후, 호출을 통해 제공됩니다. – Justicle