我使用EFCore搜索数据库。
当TValue == DateTime时,它不运行。
/// <summary>
/// 大于或等于
/// </summary>
/// <param name="propertyName"></param>
/// <param name="value"></param>
public void GreaterThanOrEqual<TValue>(string propertyName, TValue value)
{
var prop = type.GetProperty(propertyName);
Expression left = Expression.Property(param, prop);
Expression right = Expression.Constant(value, prop.PropertyType);
Expression result = Expression.GreaterThanOrEqual(left, right);
filter = Expression.And(filter, result);
}
我看到控制台了,sql是
SELECT COUNT(*)
FROM [tOrganization] AS [item]
WHERE (1 & CASE
WHEN [item].[CreateTime] >= '2013-02-26T00:00:00.0000000'
THEN CAST(1 AS BIT) ELSE CAST(0 AS BIT)
END) = 1
但是名为CreateTime的列是datetime,而不是datetime2。
我该怎么办?
答案 0 :(得分:0)
db实体属性需要添加[Column(TypeName =“ datetime”)]属性。 db实体属性(例如money,decimal(18,15))也需要添加此属性。