2013-03-29 11 views
7

Próbuję zapisać/odczytać szerokość i długość geograficzną do bazy danych ms sql przy użyciu C#, framework encji - najpierw bazy danych, a mvc.Zapobieganie zaokrąglaniu po przecinku w bazie danych Entity Framework najpierw

Problem polega na tym, że szerokość/długość są wyświetlane z tylko dwoma miejscami dziesiętnymi, mimo że są poprawne w bazie danych. Baza danych zawiera pola numeryczne (18,6).

Mam zmodyfikowany plik kontekstowe następująco:

protected override void OnModelCreating(System.Data.Entity.DbModelBuilder modelBuilder) 
    { 
     modelBuilder.Entity<STORE_LOCATION>().Property(location => location.LATITUDE).HasPrecision(18, 6); 
     modelBuilder.Entity<STORE_LOCATION>().Property(location => location.LONGITUDE).HasPrecision(18, 6); 
    } 

2 pytania - Czy mogę być zmodyfikowanie OnModelCreating w pliku kontekstowego - choć ostrzega zmiany mogą zostać utracone na regenerację i jak mogę zachować kod od zaokrąglenia liczb dziesiętnych?

Każda pomoc doceniona!

Odpowiedz

4

powinienem być zmodyfikowanie OnModelCreating w pliku kontekstowego - choć ostrzega zmiany mogą zostać utracone na regenerację i jak mogę zachować kod z zaokrągleń dziesiętnych?

Nie - wdrożenie częściowej klasy context w innym pliku i realizować tam OnModelCreating

jak dla precyzji - nie można sprawdzić wartości w obiektach w debugera vs. wyświetlania na stronie? Zaokrąglanie może występować podczas renderowania.

spróbuj dodać atrybut DisplayFormat z właściwością w klasie encji:

[DisplayFormat(DataFormatString = "{0:0.0#####}", ApplyFormatInEditMode = true)] 
+0

Dzięki reagowania. Tak, zaokrąglanie występuje w renderowaniu. Wszelkie sugestie, jak temu zapobiec? – user1069733

+0

Czy przypisujesz wartość do formantu, który renderuje? może być konieczne określenie formatowania – Moho

+0

Tak - używając @ Html.EditorFor (model => model.LATITUDE) – user1069733

Powiązane problemy