io uso EFCore per cercare DB.
Quando TValue == DateTime, non viene eseguito.
/// <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);
}
Vedo il cosole, lo 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
ma la colonna denominata CreateTime è datetime, non datetime2.
Come posso fare ?
la proprietà entity db deve aggiungere [Column (TypeName = "datetime")]. e la proprietà dell'entità db come money, decimal (18,15), deve aggiungere anche questo attributo.