这是我要传入 where 子句的自定义过滤器(Func)
Func<Project,bool> filter = f =>
{
bool filteredContent = true;
if (!CreatorId.Equals(0))
filteredContent = f.CreatedBy.Equals(CreatorId);
if (filteredContent && !VerticalMarketId.Equals(0))
filteredContent = f.VerticalMarketsId.Equals(VerticalMarketId);
if (filteredContent && !ProductCategoryId.Equals(0))
filteredContent = f.ProductCategoriesId.Equals(ProductCategoryId);
return filteredContent;
};
Run Code Online (Sandbox Code Playgroud)
这是我的代码,我根据过滤器表达式中创建的条件获取所有项目
getProjects = await _context.Projects.Where(x => x.IsDeleted == false && filter.Invoke(x))// Here I'm getting the exception
.Include(PC => PC.ProjectComments.Where(x => x.IsDeleted == false))
.Include(SP => SP.SharedProjects)
.AsNoTracking().ToListAsync();
Run Code Online (Sandbox Code Playgroud)
异常:无法翻译 LINQ 表达式(DbSet......)。以可翻译的形式重写查询,或者通过插入对“AsEnumerable”、“AsAsyncEnumerable”、“ToList”或“ToListAsync”的调用来显式切换到客户端计算。
有人可以告诉我如何使用其中的表达式过滤数据吗?
注意:我可以在应用过滤器之前执行 ToListAsync() ,但它会从数据库获取所有记录,然后在客户端进行过滤。但我想在服务器端过滤数据。
我想使用 IFormFile 上传数据库中的一些文档。在客户端,我使用 Dropzone.js 但它无法正常工作。每当我点击“提交”按钮时,它都会在参数中发送一个空值。我有两个疑问。1. 如何将文档(图像/PDF)发送到操作方法。2. 如何重新设计(改变风格)Dropzone。(如果有人解释 dropzone 的流程那么它将非常有用)
这是我的 HTML 代码
<form asp-action="AddDocument" asp-controller="Transactions" method="post" enctype="multipart/form-data" class="dropzone dz-clickable form-horizontal form-bordered" id="dropzoneForm">
<div class="form-group form-actions">
<div class="col-md-9 col-md-offset-4">
<button type="submit" class="btn btn-sm btn-primary"><i class="fa fa-floppy-o"></i> Upload</button>
</div>
</div>
</form>
Run Code Online (Sandbox Code Playgroud)
JS代码:
$(function () {
Dropzone.options.dropzoneForm = {
paramName: "DocumentPhotos", // The name that will be used to transfer the file
autoProcessQueue: false,
uploadMultiple: true,
parallelUploads: 100,
accept: function (file, done) {
done();
}
};
});
Run Code Online (Sandbox Code Playgroud)
这是我的服务器端语言代码:
[HttpPost]
public async Task<IActionResult> AddDocument(IEnumerable<IFormFile> …Run Code Online (Sandbox Code Playgroud)