Chr*_*eet 5 c# serialization iqueryable odata asp.net-web-api
我正在使用OData v4并试图让一个非常简单的控制器工作:
控制器:
public class ProductController : ODataController
{
readonly MasterDataEntities db = new MasterDataEntities();
[EnableQuery(PageSize = MaxPageSize)]
public IQueryable<Product> Get()
{
return db.Products;
}
[EnableQuery]
public SingleResult<Product> Get([FromODataUri] string key)
{
return SingleResult.Create(db.Products.Where(p => p.Code == key));
}
}
Run Code Online (Sandbox Code Playgroud)
WebApiConfig:
ODataModelBuilder builder = new ODataConventionModelBuilder();
builder.EntitySet<Product>("Product");
builder.EntityType<Product>().HasKey(p => p.Code);
config.MapODataServiceRoute("ODataRoute", null, builder.GetEdmModel());
Run Code Online (Sandbox Code Playgroud)
当我打电话给servicelocation/Product('abc')
如果abc是一个有效的代码,我会得到一个很好的JSON序列化Product对象
如果abc是无效代码,我会收到以下错误:
'SingleResult`1'无法使用ODataMediaTypeFormatter进行序列化.
在System.Web.OData.Formatter.ODataMediaTypeFormatter.GetSerializer(类型类型,对象值,IEdmModel模型,ODataSerializerProvider serializerProvider)
我花了两天时间寻找解决方案,但似乎没有其他人得到这个问题?
归档时间: |
|
查看次数: |
2856 次 |
最近记录: |