Pregunta

Estoy trabajando con LINQ para el primer tiempo y ganas de conseguir la Asignación de trabajo cuando tengo un tipo de dinero en SQL, pero mi dominio de la propiedad del objeto es de tipo double.¿Cómo puedo expresar esto en el archivo XML, o en el código de forma que la asignación no se lanza el habitual "emitidos válidos" excepción?

¿Fue útil?

Solución

En el DBML archivo XML, puede establecer la Expresión de atributo de un elemento de la Columna a algo como esto:

 <Column Name="Table1.Amount" DbType="smallint" Type="System.Int32" 
         Expression="CAST(Table1.Amount as int)" />

Otros consejos

Un poco fuera de tema, pero esto es algo que todo el mundo debe saber cuando se trabaja con el tipo Dinero en SQLServer.

Usted no desea utilizar un doble, desea utilizar un decimal.

Un Doble es un flotador largo, y aritmética de punto flotante, nunca deben utilizarse para cálculos financieros.

Piense en esto, las fracciones 1/3, 1/3 y 1/3 es igual a 1.Sin embargo, cuando se expresa como un doble, es decir:

.3333 + .3333 + .3333 = .9999 no 1.

Usted puede pensar que el hecho de perder una milésima de un centavo es trivial, pero no cuando trabajo con alguien más dinero.

El Uso Del Sistema.Decimal.

bastante seguro de que el Dinero de los mapas del Sistema.Decimal

Marque aquí

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top