我有低年级的
public partial class ClubMember
{
public Guid ClubId { get; set; }
public Guid MemberId { get; set; }
public byte ClubRoleId { get; set; }
public bool? IsActive { get; set; }
public Club Club { get; set; }
public ClubRole ClubRole { get; set; }
public UserEntity Member { get; set; }
}查询时,如下所示
byte[] a = new byte[]{3,4 };
dbContext.ClubMember.Where(cm => a.Contains(cm.ClubRoleId))这会抛出错误,例如
未能将参数值从Byte[]转换为Byte。
发布于 2018-04-02 12:17:03
数组有两个过载的Contains。一个是Contains(T arg),另一个是Contains(T[] args),你搞错了。
您可以尝试使用Any方法。样本:
byte[] a = new byte[]{ 3, 4 };
var result = dbContext.ClubMember.Where(cm => a.Any(b => b == cm.ClubRoleId));使用Any,实体框架将对所需列执行IN筛选器。某种情况下,您可以在Any作用域上添加另一个可查询实例,并执行子查询。
对于示例,还可以使用List而不是数组:
var a = new List<byte>() { 3, 4 };
var result = dbContext.ClubMember.Where(cm => a.Contains(cm.ClubRoleId));https://stackoverflow.com/questions/49611072
复制相似问题