微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用简单Odata客户端查询FileStreamResult

如何解决如何使用简单Odata客户端查询FileStreamResult

我正在尝试使用简单的odata客户端从odata asp.net核心Web API获取流。我的odata函数控制器永远不会被调用。有提示吗?

模型配置:

var GetMyModelCsvConf = builder.EntityType<MyModel>().Collection.Function("GetMyModelCsv").Returns<FileStreamResult>();
GetMyModelCsvConf.Parameter<Guid>("MyId");
GetMyModelCsvCsvConf.Parameter<string>("Culture");

控制器:

[HttpGet]
[Produces("application/octet-stream")]
[ProducesResponseType(typeof(ODataValue<FileStreamResult>),Status200OK)]
[ProducesResponseType(Status404NotFound)]
[EnableQuery(AllowedQueryOptions = None)]
public async Task<IActionResult> GetMyModelCsv(Guid MyId,string Culture)
{
   var Results = _Query.Get(x=>x.MyId == MyId);
   using (MemoryStream ms = new MemoryStream())
   {
     using (TextWriter tw = new StreamWriter(ms))
     using (CsvWriter csv = new CsvWriter(tw,new System.Globalization.CultureInfo(Culture)))
     {
        csv.WriteRecords<MyModel>(Results);
     }

     return File(ms,"application/octet-stream");
    }
}

请求

var CsvFile = await _ODataApiService.ODataClient
                        .For<MyModel>("MyModels")
                        .Function("GetMyModelCsv")
                        .Set(new
                        {
                            MyId = MyId,Culture = System.Globalization.CultureInfo.CurrentCulture.Name
                        }).Media().GetStreamAsArrayAsync();

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。