我关注此链接Supporting OData Actions in ASP.NET Web API 我想将我的对象/实体作为参数传递,如下所示:
ActionConfiguration addNewPatient = builder.Entity<Patient>().Collection.Action("AddNewPatient");
addNewPatient.Parameter<int>("hospId");
addNewPatient.Parameter<int>("docId");
addNewPatient.Parameter<Patient>("patient");
addNewPatient.Returns<bool>();
但我遇到了这个问题:
System.ArgumentException: Invalid parameter type 'Patient'.
A non-binding parameter type must be either Primitive, Complex, Collection of Primitive or a Collection of Complex.
Parameter name: parameterType
我试图实现这个
ActionConfiguration addNewPatient = builder.Entity<Patient>().Collection.Action("AddNewPatient");
addNewPatient.Parameter<int>("hospId");
addNewPatient.Parameter<int>("docId");
var patientConfig = builder.StructuralTypes.OfType<EntityTypeConfiguration>().Single(x => x.Name == "Patient");
addNewPatient.SetBindingParameter("patient", patientConfig, false);
addNewPatient.Returns<bool>();
但我不能再调用方法 POST ../odata/Patient/AddNewPatient
<FunctionImport Name="AddNewPatient" ReturnType="Edm.Boolean" IsBindable="true">
<Parameter Name="patient" Type="Patient"/>
<Parameter Name="hospId" Type="Edm.Int32" Nullable="false"/>
<Parameter Name="docId" Type="Edm.Int32" Nullable="false"/>
</FunctionImport>
请帮助我,我尝试了各种方法,但仍然没有运气。谢谢。