[英]LINQ to Entitites: How to take all values by a predicate
我正在尝试获取具有相同谓词的所有值。 例如:我有许多包记录,其中包含它自己的 Id、Data 和 DeviceId,这表明 package 来自哪个设备。
这是我创建的 function,它只返回第一个 package
public Package GetPackageByDeviceId(int id)
{
return avldbContext.Packages.Where(p => p.DeviceId == id).FirstOrDefault();
}
关于如何获得所有包裹的任何建议?
public IEnumerable<Package> GetPackagesByDeviceId(int id)
{
return avldbContext.Packages.Where(p => p.DeviceId == id);
}
public List<Package> PackagesByDeviceId(int id)
{
return avldbContext.Packages.Where(p => p.DeviceId == id).ToList();
}
首先,您需要指定方法的“s”字符结尾。 因为该方法返回多行。 比没有 FirstOrDefault()。 您需要放置一个 ToList() 扩展方法来提取所有记录。 祝你好运。
编辑:顺便说一句,您的代码看起来仍在寻找主键。 您需要扩展您的预测。
如果你想得到IEnumerable
结果
public IEnumerable<Package> GetPackagesByDeviceId(int id)
{
return avldbContext.Packages.Where(p => p.DeviceId == id);
}
或者,如果您想获取List
public List<Package> GetPackagesByDeviceId(int id)
{
return avldbContext.Packages.Where(p => p.DeviceId == id).ToList();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.