我在Core 3.1中使用MySql.Data.EntityFramework遇到了一个问题。
mysql中id的数据类型是bigint,我在写Entitiy时将它作为long处理:
[Column("article_id", TypeName = "bigint")]
public long Id { get; set; }
当我Get实体时,能够正常获取到它的id。之后我定义了一个方法 ArticleExistsAsync,希望根据传入的long类型id,判断该实体是否存在:
public async Task<bool> ArticleExistsAsync(long articleId)
{
return await _context.Articles.AnyAsync(x => x.Id==articleId);
}
但是在运行时抛出了如下异常
InvalidOperationException: No coercion operator is defined between types 'System.Int16' and 'System.Boolean'.
System.Linq.Expressions.Expression.GetUserDefinedCoercionOrThrow(ExpressionType coercionType, Expression expression, Type convertToType)
目前没有头绪,希望各位dalao能提供一些解决思路,非常感谢。