C# 如何从水果ID中选择水果对象(唯一)

C# 如何从水果ID中选择水果对象(唯一),c#,linq,select,C#,Linq,Select,这是从ID中选择所需水果对象的最佳方法吗 所以我取了这个ID并返回它的名字,ID是唯一的,所以只有一个结果 如果我不使用.Single(),我会得到IQueryable,但我只需要一个对象 var fruitName = (from p in fruitDB.Fruits where p.FruitID == id select p.FruitName).Single();

这是从ID中选择所需水果对象的最佳方法吗

所以我取了这个ID并返回它的名字,ID是唯一的,所以只有一个结果

如果我不使用.Single(),我会得到IQueryable,但我只需要一个对象

var fruitName = (from p in fruitDB.Fruits
                               where p.FruitID == id
                               select p.FruitName).Single();
.Single()
可以-但是如果没有任何结果,它将抛出异常。如果希望它返回
null
,请执行
SingleOrDefault()
。这将为您提供返回的唯一对象,如果没有找到,则为null

如果结果集将返回多个项目(不太可能有ID),并且您只需要第一个项目,请使用
first()
FirstOrDefault()

尝试此操作

fruitDb.Fruits.SingleOrDefault(f => f.FruitId == id);

我不确定是什么问题。您的查询应该根据需要选择相应的名称。如果您想要
水果
本身,只需
选择p
,而不是
选择p.FruitName