[英]Get entity by list of id and check if they exist
想象一下,我有以下课程:
// DTO
public class RequestrDto
{
public string Name { get; set; }
public ICollection<int> CityIds { get; set; }
}
// ENTITY
// PLACE
public class Place
{
public int Id { get; set; }
public string Name { get; set; }
public List<City> Cities { get; set; }
}
// CITY
public class City
{
public int Id { get; set; }
public int? PlaceId { get; set; }
public string Name { get; set; }
public string Code { get; set; }
public List<City> Cities { get; set; }
public Place Place { get; set; }
}
我想检查数据库中是否存在城市,并添加到新创建的实体类中,该实体类将添加到数据库中。
所以,我可以这样做:
var placeEntity = new Place()
{
Name = RequestrDto.Name;
}
var cities = _context.Cities.Where(x => request.CityIds.Contains(x.Id)).ToList();
placeEntity.Cities.AddRange(cities);
我怎样才能获得城市并检查他们是否在数据库中? 我知道我可以通过foreach迭代它,但我正在寻找一种奇特的方式。
你可以使用Except
产生两个序列的集合差异。
var cities = _context.Cities.Where(x => request.CityIds.Contains(x.Id))
.ToList();
var ids = cities.Select(x => x.Id);
var missing = request.CityIds.Except(ids);
// or
var missing = request.CityIds.Except(cities.Select(x => x.Id));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.