FirstOrDefault两种方式

本文关键字:方式 两种 FirstOrDefault | 更新日期: 2023-09-27 18:06:51

我不明白这两种设置FirstOrDefault的方式的区别:

Product a = (from r in _context.Products where r.IDPROD.Equals(10) select r).FirstOrDefault();
Product a = (from s in _context.Products where s.IDPROD == 10 select s).FirstOrDefault<Products>();

有人可以用简单的方式解释我吗?

FirstOrDefault两种方式

where r.IDPROD.Equals(10) select r).FirstOrDefault();

方法Int32.Equals()使用。然后是FirstOrdefault<T>,其中T由编译器自动检测(类型为r)。

where s.IDPROD == 10 select s).FirstOrDefault<Products>()

操作符==重载代替。结果强制转换为Products


我将使用扩展方法语法来编写:

Product p = _context.Products.FirstOrDefault(p => p.IDPROD == 10);

是一样的。第一个版本是带有推断泛型参数的FirstOrDefault。