C# 返回实体Id不等于int数组中任何值的实体
如果C# 返回实体Id不等于int数组中任何值的实体,c#,entity-framework,entity-framework-core,C#,Entity Framework,Entity Framework Core,如果Id不等于int数组中的任何值,如何让EF Core返回一个实体 我显示一组图片,需要从数据库中选择一张当前未显示的图片 到目前为止我得到的代码(不多): 公共异步任务GetUniquePicture(int[]existingId) { i结构结果=null; _context.Pictures.Where(); } 您可以使用包含 _context.Pictures.Where(r => !existingIds.Contains(r.ID)); 编辑 正如Michal在评论中提
Id
不等于int数组中的任何值,如何让EF Core返回一个实体
我显示一组图片,需要从数据库中选择一张当前未显示的图片
到目前为止我得到的代码(不多):
公共异步任务GetUniquePicture(int[]existingId)
{
i结构结果=null;
_context.Pictures.Where();
}
您可以使用
包含
_context.Pictures.Where(r => !existingIds.Contains(r.ID));
编辑
正如Michal在评论中提到的,如果您需要返回单个实体,请使用FirstOrDefault
和一起使用
_context.Pictures.Where(r => !existingIds.Contains(r.ID));
编辑
正如Michal在评论中提到的,如果需要返回单个实体,请使用FirstOrDefault
和
,我将使用FirstOrDefault
方法,该方法接受谓词来指定过滤。谓词使用数组的包含方法:
_context.Pictures.FirstOrDefault(picture => ! existingIds.Contains(picture.ID));
请注意,如果pedicate过滤掉所有元素,FirstOrDefault
将返回null
。我将使用FirstOrDefault
方法,该方法接受谓词来指定过滤。谓词使用数组的包含方法:
_context.Pictures.FirstOrDefault(picture => ! existingIds.Contains(picture.ID));
请注意,如果pedicate过滤掉所有元素,FirstOrDefault
将返回null
。您可以使用all
_context.Pictures.Where(picture => existingIds.All(id=> id != picture.ID));
如果只想返回元素而不是集合:
_context.Pictures.FirstOrDefault(picture => existingIds.All(id=> id != picture.ID));
您可以使用All
_context.Pictures.Where(picture => existingIds.All(id=> id != picture.ID));
如果只想返回元素而不是集合:
_context.Pictures.FirstOrDefault(picture => existingIds.All(id=> id != picture.ID));
这就是我的结论:(Random是一种自定义扩展方法)
公共异步任务GetUniquePicture(int[]existingId)
{
var tmp=wait_context.Pictures.Where(p=>!existingIds.Contains(p.Id)).toListSync();
返回tmp.Random().First();
}
谢谢 这就是我的结论:(Random是一种自定义扩展方法)
公共异步任务GetUniquePicture(int[]existingId)
{
var tmp=wait_context.Pictures.Where(p=>!existingIds.Contains(p.Id)).toListSync();
返回tmp.Random().First();
}
谢谢 检查它是否为null:)注意方法需要返回单个实体而不是集合。检查它是否为null:)注意方法需要返回单个实体而不是集合。