Dop*_*oep 0 c# reflection ef-core-2.2
我想在我的LINQ查询中动态添加where子句。我具有过滤器属性名称和过滤器属性值,因此我需要构建如下内容:
var assignmentListQuery = context.Assignments;
if (!string.IsNullOrWhiteSpace(bookingStep.FilterPropertyName) && !string.IsNullOrWhiteSpace(bookingStep.FilterPropertyValue))
{
assignmentListQuery = assignmentListQuery.Where(item => PROPERTYNAME == PROPERTYVALUE)
}
ar assignmentList = await assignmentListQuery.ToListAsync();
Run Code Online (Sandbox Code Playgroud)
我试图获取属性的propertyinfo,在这里我似乎不知道。
var item = context.Set<Assignment>().First();
object value = item.GetType().GetProperty(bookingStep.FilterPropertyName).GetValue(item, null);
Run Code Online (Sandbox Code Playgroud)
有谁知道如何创建这种where子句?
public class Assignment
{
/// <summary>
///
/// </summary>
[Display(Name = nameof(Id))]
public int Id { get; set; }
/// <summary>
///
/// </summary>
[Display(Name = nameof(OrderNumber))]
public string OrderNumber { get; set; }
/// <summary>
///
/// </summary>
[Display(Name = nameof(ScheduledLoading))]
public DateTime ScheduledLoading { get; set; }
/// <summary>
///
/// </summary>
[Display(Name = nameof(CustomerOrderNumber))]
public string CustomerOrderNumber { get; set; }
/// <summary>
///
/// </summary>
[Display(Name = nameof(ArticleNumber))]
public string ArticleNumber { get; set; }
/// <summary>
///
/// </summary>
[Display(Name = nameof(Comment))]
public string Comment { get; set; }
[Display(Name = nameof(CustomerId))]
public int? CustomerId { get; set; }
[Display(Name = nameof(Customer))]
public virtual Customer Customer { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
那是Assignment实体,FilterPropertyName是例如“ CustomerOrderNumber”
感谢大家。我使用它工作
List<Assignment> assignmentList;
if (!string.IsNullOrWhiteSpace(bookingStep.FilterPropertyName) &&
!string.IsNullOrWhiteSpace(bookingStep.FilterPropertyValue))
{
assignmentList = await
assignmentListQuery.Where(e =>
EF.Property<string>(e, bookingStep.FilterPropertyName) ==
bookingStep.FilterPropertyValue).ToListAsync();
}
else
{
assignmentList = await assignmentListQuery.ToListAsync();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
247 次 |
| 最近记录: |