[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) 技术:
当我执行此方法时,在评估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) 我需要在C#中将字符串“ 26h44m3s”解析为TimeSpan。我找不到在.NET中实现的任何可以处理的东西。那么,如何以一种干净的方式完成它呢?对此有任何现有的细节吗?
我正在从Twitch API端点GetVideos的“ duration”属性中接收字符串。
c# ×2
.net-core ×1
asp.net-core ×1
asp.net-mvc ×1
io ×1
parsing ×1
resharper ×1
string ×1
timespan ×1