下面的代码给了我需要的结果,但任何人都可以建议如何更好地编写它?我相信有一个更有效的方法来做到这一点。 谢谢。整理lambda表达式
private bool IsLocation(Guid _vID, Guid OrganisationId)
{
var vehicle = _vehilceRepository.GetSingle(c => c.vehicleId == _vID);
var clients = _clientRepository.GetList(c => c.OrganisationID == OrganisationId);
foreach (var client in clients)
{
var locations = _LocationRepository.GetList(c => c.ClientID == client.ClientID);
if (locations.Count > 0)
{
foreach (var location in locations)
{
if (location.LocationId == vehicle.LocationID)
{
return true;
}
}
}
}
return false;
}
我建议为Visual Studio安装'ReSharper'。它会帮助你处理这些事情。 – ThePerplexedOne
你是什么意思:“更有效的方式”?更快的代码执行(实际上是效率)或更少的代码写入? –
回复@AdamJachocki所说的 - 理想的*在这里将能够做一个单一的操作(而不是N + 2);但是,这并不一定可以通过存储库API随时获得。这就是为什么当性能是一个因素时,我通常更喜欢*非常特殊的方法 - 也就是说,我可以基本上编写一些SQL,通过数据库的连接直接执行*,只传递两个GUID,并返回1或0 。所以我想这里的理想是:'返回_someRepo.IsVehicleInAnyClientLocation(_vID,OrganisationId);' –