gpt4 book ai didi

c# - 如何使用 Expression linq 创建函数

转载 作者:行者123 更新时间:2023-11-30 21:08:08 25 4
gpt4 key购买 nike

我有以下类(class)

public class ProdutoTipo : IAuditable
{
public Guid ID { get; set; }

public string Nome { get; set; }
public string MiniNome { get; set; }
public string Descricao { get; set; }
public string Link { get; set; }
public int? Ordem { get; set; }

public virtual Foto ImagemExibicao { get; set; }
public virtual ICollection<ProdutoCategoria> Categorias { get; set; }

public DateTime CreatedAt { get; set; }
public string CreatedBy { get; set; }
public DateTime? UpdatedAt { get; set; }
public string UpdatedBy { get; set; }

public bool PaginaInicial { get; set; }

public ProdutoTipo() { ID = Guid.NewGuid(); }
}

我需要一个搜索存储库并返回 true 或 false 的函数
但是这个搜索可以使用类的任何字段!

据我所知

public bool Existe<TProperty, TComparer>(Expression<Func<ProdutoTipo, TProperty>> entityExpression, TComparer valor)
{
return Repository.ProdutoTipos.Any(p => /*entityExpression == valor ?????*/);
}

想要使用这样的功能......

Existe(p => p.Nome, "Value to comparer!");

谢谢大家!

最佳答案

我觉得你在找

Func<ProdutoTipo, TProperty> getter = entityExpression.Compile();
Repository.ProdutoTipos.Any(p => getter(p).Equals(valor));

但你也可以这样做:

public bool Existe<TProperty, TComparer>(Expression<Func<ProdutoTipo, bool>> expression)  
{
return Repository.ProdutoTipos.Any(expression);
}

然后调用:

Existe(p => p.Nome == "Value to comparer!");  

关于c# - 如何使用 Expression linq 创建函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9845982/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com