2010-07-06 23 views
8

var = islemList (de ISL en donde entities.Islemler (isl.KayitTarihi.Date> = dbas & & ISL. KayitTarihi.Value.Date < = dbit) seleccione ISL);LINQ para obtener una Entidad Fecha de DateTime

Da error: la fecha no es compatible con LINQ a entidades ... ¿Cómo puedo obtener la fecha en linq.

+0

¿Cuál es el tipo de dbas y dbit? ¿Es DateTime? ¿Y qué es KayitTarihi.Value es propiedad de navegación? –

+0

Pruébalo sin el '.Date' y' .Value.Date' si tu dataType es DateTime (nullable). –

Respuesta

1

si KayitTarihi es una columna de fecha en el PP (y los administradores de bases y son dbit DateTime), utilice:

var islemList = (from isl in entities.Islemler where (isl.KayitTarihi >= dbas && isl.KayitTarihi <= dbit) select isl); 
+0

KayitTarihi es DateTime pero solo necesito Date – serkan

+1

Pruebe '((Nullable ) isl.KayitTarihi.Date)'. No estoy seguro de cómo reaccionará LINQ. Alternativamente, puede modificar 'dbas' y' dbit' (si están sin la parte de tiempo) por lo que no tiene que extraer el valor de Fecha de 'KayitTarihi':' ... where (isl.KayitTarihi> = dbas && isl. KayitTarihi

-1

La propiedad .Date no es compatible con LINQ a Entidades (aunque puede ser apoyado en otras implementaciones de Linq).

Me doy cuenta de que solo quiere comparar las fechas, pero no hay ningún problema real al comparar las fechas si los valores dbas y dbit son de fecha y hora con 00:00:00. Es posible que tenga que compensar las fechas o utilizar otras comprobaciones de desigualdad para obtener el intervalo adecuado, pero la comparación funcionará según lo previsto.

Yo personalmente iría con la solución de Jandek.

24
+8

Tenga en cuenta que EntityFunctions ahora está en desuso y System.Data.Entity.DbFunctions se debe utilizar en su lugar. – Meryovi

+2

* Ahora * siendo EF 6 en adelante. Las implementaciones no han cambiado, es simplemente un cambio de nombre con las funciones anteriores delegando a las nuevas funciones, por lo que puede actualizar su código de forma segura. Del mensaje de confirmación: * "Las clases con los nombres antiguos básicamente solo se delegan en las nuevas clases y también se marcan como obsoletas para ayudar a las personas a pasar a las nuevas clases". * – Stijn

Cuestiones relacionadas