我跟随这个链接 在ASP.NET Web API中支持OData操作,我想像这样将我的对象/实体作为参数传递:
但我遇到了这个问题:
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>
请帮我,我已经尝试了各种方法,但仍然没有成功。谢谢。
builder.Entity<Patient>().Action("AddNewPatient")
和 urlodata/Patient('patient id')/AddNewPatient
吗? - Tasnim Reza