2010-10-27 6 views
6

Ich habe LINQ to SQL-Klassen aus einer Datenbank generiert, die nicht unter meiner Kontrolle steht und viele Decimal(38, 5)-Felder enthält. Anscheinend ist der Bereich des Typs .NET Dezimal kleiner ist als diese, so die LINQ to SQL-Code-Generator ist eine Menge Warnungen zu werfen:LINQ to SQL DBML-Warnungen unterdrücken

DBML1008: Mapping zwischen DbType ‚Dezimal (38,5)‘ und Typ ' System.Decimal‘in der Spalte‚StructGable24InchOCStuds‘Typ‚AddersAndMultiplier‘kann zu Datenverlust führen, wenn aus der Datenbank geladen

Es ist äußerst unwahrscheinlich, dass eines dieser Felder werden jemals einen Wert groß genug, hat Datenverlust zu verursachen in der Praxis also möchte ich diese Warnungen unterdrücken. Offensichtlich funktioniert das Einstellen der Warnung-Unterdrückung durch den Dialog in VS jedoch nicht mit LINQ to SQL-Code Generator Warnungen - gibt es eine andere Methode?

Antwort

3

Ich bin nicht sicher, wie die Warnung unterdrückt werden soll, aber da ich die gespeicherte Prozedur kontrolliere, die das Problem auf meinem System verursachte, werfe ich den Rückgabewert auf eine kleinere Dezimalzahl, die die Warnung entfernt.

SELECT CAST(SUM(AdFee) AS DECIMAL(19, 3))