小编Lin*_*erg的帖子

尝试保存图像 .NET Core 时出现编译错误 - 参数类型“System.IO.FileStream”不可分配给参数类型“System.IO.Stream”

图片

  [HttpPost]
    public async Task<IActionResult> Upload(string memberNumber, IFormFile file)
    {
        var uploadsFolderPath = Path.Combine(_host.WebRootPath, "uploads");

        var fileName = Guid.NewGuid() + Path.GetExtension(file.FileName);
        var filePath = Path.Combine(uploadsFolderPath, fileName);

        using (var stream = new FileStream(filePath, FileMode.Create))
        {
             // Here's the compilation error
            await file.CopyToAsync(stream);
        }

        var photo = new Photo(fileName);
        var member = _unitOfWork.Members.GetByMemberNumber(memberNumber);
        member.Photo = photo;
        _unitOfWork.Complete();

        return Ok(_mapper.Map<Photo, PhotoResource>(photo));
    }
Run Code Online (Sandbox Code Playgroud)

我在尝试保存图像 .NET Core 时遇到编译错误 -

Argument type 'System.IO.FileStream' is not assignable to parameter type 'System.IO.Stream' 
Run Code Online (Sandbox Code Playgroud)

这是为什么?我应该使用另一个流编写器吗?不知道有没有包丢失?

.csproj 参考资料:

  <ItemGroup>
<PackageReference Include="AutoMapper" Version="6.1.0" …
Run Code Online (Sandbox Code Playgroud)

c# io resharper .net-core asp.net-core

5
推荐指数
1
解决办法
1357
查看次数

EF Core 2.0-筛选IQueryable导航属性集合为空

技术:

  • EF核心2.0.0
  • Asp.Net Core Mvc 2.0.0

当我执行此方法时,在评估CurrentGrade时会抛出“ InvalidOperationException:序列不包含任何匹配元素”。为什么会抛出?如何解决?

我有一个搜索方法,可对大型数据集(10000个用户和数千个相关实体)的很多属性进行过滤。我正在尝试优化查询,并且在完成所有筛选之前,我不希望执行查询。当使用ToList()使该方法起作用时,我宁愿针对IQueryable工作并在完成过滤后执行查询。

我敢肯定,在将EF Core从1.x更新到2.0之前,这是可行的。

  public MemberQueryResult Search(MemberQuery filter)
        {
            var query = Context.Users
                .Include(x => x.Honours)
                .Include(x => x.Grades)
                .Include(x => x.Strokes)
                .Include(x => x.Posts)
                .Include(x => x.Loge)
                .AsNoTracking();

            query = query.ApplyFiltering(filter);

            return result;
        }
Run Code Online (Sandbox Code Playgroud)

ApplyFiltering()可以很好地过滤外键,但是当使用.Where()过滤导航属性集合时,在将其包括在内之前,它会在Member上抛出ICollection Grades。

这是ApplyFiltering()内部的方法,该方法引发:

  private static IQueryable<Member> SearchByCurrentGradeRange(MemberQuery filter, IQueryable<Member> result)
    {
        if (filter.GradeRange == null) return result;

        var gradeRange = filter.GradeRange.Split(',');
        var gradeFrom = (Grade)int.Parse(gradeRange[0]);
        var gradeTo = (Grade)int.Parse(gradeRange[1]);

        result = result.Where(x => x.CurrentGrade >= gradeFrom …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc entity-framework entity-framework-core

3
推荐指数
1
解决办法
1717
查看次数

在C#中将字符串“ 26h44m3s”解析为TimeSpan

我需要在C#中将字符串“ 26h44m3s”解析为TimeSpan。我找不到在.NET中实现的任何可以处理的东西。那么,如何以一种干净的方式完成它呢?对此有任何现有的细节吗?

我正在从Twitch API端点GetVideos的“ duration”属性中接收字符串。

c# string parsing timespan

0
推荐指数
2
解决办法
469
查看次数