c# – 如何使用Func类型的Expression作为参数调用方法

c# – 如何使用Func类型的Expression作为参数调用方法,第1张

概述我使用了在线教程中看到的Repository模式… 一切正常,除了find方法,我不知道如何使用它,我很难理解表达式或Func类型.之前我使用过linq和lambda,但是我很开心,仍然不能流利地使用它… public IEnumerable<TEntity> Find(Expression<Func<TEntity, bool>> predicate){ return Context. 我使用了在线教程中看到的Repository模式…

一切正常,除了find方法,我不知道如何使用它,我很难理解表达式或Func类型.之前我使用过linq和lambda,但是我很开心,仍然不能流利地使用它…

public IEnumerable<TEntity> Find(Expression<Func<TEntity,bool>> predicate){    return Context.Set<TEntity>().Where(predicate);}

我有这个模型类:

public partial class Artikl{        [browsable(false)]        public int IDArtikli { get; set; }        public string barkod { get; set; }        [displayname("Šifra")]        public Nullable<int> Sifra { get; set; }        public string Naziv { get; set; }        [displayname("JM")]        public string JedinicaMjere { get; set; }        public decimal Tarifa { get; set; }        [displayname("Prodajna")]        public Nullable<decimal> ProdajnaCijena { get; set; }        [browsable(false)]        public Nullable<bool> Flag { get; set; }        public Nullable<decimal> Kalo { get; set; }        [displayname("Nabavna")]        public Nullable<decimal> NabavnaCijena { get; set; }        [displayname("Veleprodajna")]        public Nullable<decimal> VeleprodajnaCijena { get; set; }        public Nullable<decimal> Zalihe { get; set; } }

我的问题是如何根据属性“Sifra”获取Artikl项目.我不知道如何调用这种方法……

private voID txtSifra_TextChanged(object sender,EventArgs e){     var artikl = _UnitOfWork.Artikl.Find(???);     txtNaziv.Text = artikl.Naziv;}
解决方法 您需要传递 lambda expression才能满足Expression< Func< TEntity,bool>>谓语.您可以通过以下方式获取基于属性“Sifra”的项目:

var artikl = _UnitOfWork.Artikl.Find(q => q.Sifra == "some int value").FirstOrDefault();

希望能帮助到你!

总结

以上是内存溢出为你收集整理的c# – 如何使用Func类型的Expression作为参数调用方法全部内容,希望文章能够帮你解决c# – 如何使用Func类型的Expression作为参数调用方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1220324.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-05
下一篇2022-06-05

发表评论

登录后才能评论

评论列表(0条)

    保存