как изменить выражение DateTime в EFCore - PullRequest
0 голосов
/ 26 февраля 2019

Я использую 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 - дата-время, а не дата-время2.

как я могу это сделать?

1 Ответ

0 голосов
/ 26 февраля 2019

в свойство сущности БД необходимо добавить атрибут [Column (TypeName = "datetime")].и свойство сущности БД, такое как money, decimal (18,15), также должно добавить этот атрибут.

...