Cómo agregar día a día en Linq a SQL

Estoy escribiendo este código. Aquí se ingresa dt en la función, así como también algo. La columna Exp es una columna de fecha T-SQL, que viene como DateTime a través de Linq.

return (from a in dataContext.TableOfA
       where a.name == "Test" &&
       a.Exp.Value.AddDays(Convert.ToDouble(Someint)) >= new DateTimeOffset(dt)
       select a).First();

En C #, puede agregar un doble como día a la fecha. Lo que significa que puede agregar 1,5 días. En T-SQL solo puedes agregar 1 día, luego 12 horas. Debe agregar un int para cada parte. Entonces, cuando Linq traduce AddDays a T-SQL, convierte mi número de días a milisegundos y los agrega. Esto le permite dar toda la precisión que el doble le da a C #.

Aquí está el problema. Cuando esto llega a SQL, me sale el error:

La fecha parte milisegundo no es compatible con la función de fecha dateadd para el tipo de datos fecha

Básicamente no puedes agregar milisegundos a una fecha. Pues no es broma. Pero, ¿cómo consigo algo que se traduce aquí? Quiero añadir días int a una fecha. ¿Es el único que quiere hacer esto para agregar el negativo de ellos al otro tipo con el que estoy comparando? ¿Qué pasa si quisiera comparar con columnas mientras agrego a una?

Actualización 1

Keith escribió: Un comando como datepart (milisegundos, 10000, myDate) ha sido compatible con T-SQL desde al menos SQL Server 2000. Este error sugiere que cualquier base de datos que esté usando no admite la parte de la fecha de milisegundos, lo que me parece extraño .

Tenga en cuenta que estoy utilizando SQL Server 2008. No se admite en el tipo de datos DATE. Es compatible en datetime.

Respuestas a la pregunta(9)

Su respuesta a la pregunta