【发布时间】:2017-08-08 14:04:21
【问题描述】:
我尝试将我的 lambda 字符串与 + 符号一起放入,但它不会让我运行代码,因为它说表达式无效!
代码顶部
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Rendering;
using Microsoft.EntityFrameworkCore;
using Certifications.Data;
using Certifications.Models;
using Microsoft.EntityFrameworkCore.Internal;
namespace Certifications.Controllers
{
public class Managerial : Controller
{
private readonly CertificationContext _context;
public Managerial(CertificationContext context)
{
_context = context;
}
过滤器
// Approval Filter
string ApprovalFilterBuild = "";
if (approval == "Approved")
{
ApprovalFilterBuild = ".Where(i => i.Approved == true);";
}
if (approval == "Revoked")
{
ApprovalFilterBuild = ".Where(i => i.Approved == false);";
}
if (approval == "ALL")
{
ApprovalFilterBuild = "";
}
查询
var certificationContext = _context.INT_CertificationsXREF
.Include(i => i.INT_CertificationCategories)
.Include(i => i.INT_Certifications)
.Include(i => i.INT_CertificationConferred)
.Include(i => i.RIM_Resource)
+ApprovalFilterBuild+
.Where(i => i.RIM_Resource.LAN == i.RIM_Resource.LAN)
.Where(i => LANlist.Contains(i.RIM_Resource.LAN));
return View(await certificationContext.ToListAsync());
【问题讨论】:
-
什么时候可以将简单字符串与实际代码连接起来?
-
您试图将
Expression与string连接起来,但您不能。 -
那你会怎么做呢?我只是个实习生。
-
查看发布的答案。这就是你想要处理它的方式。如果您绝对需要使用字符串(即,您正在从外部源读取数据),您可以使用反射来完成此操作。
-
文体小问题:你不应该明确比较
true和false。
标签: c# sql lambda asp.net-core