domyślnie Entity Framework mapuje tinyint na bajt.Entity Framework: mapowanie tinyint na boolean
Próbowałem zmiany typu bazowego po tym jak został wygenerowany na Boolean, ale coraz błąd kompilacji
Mapowanie Użytkownik jest nieprawidłowy. Typ "Edm.Boolean [Nullable = False, DefaultValue =]" członka bla ...
jest to możliwe w wersji 4.0?
to nie był mój pomysł, aby użyć tinyint kolumnę jako boolean. zostało to zrobione automatycznie przez inny zespół używający hibernacji, który najwyraźniej robi to w ten sposób dla kompatybilności mysql. oczywiście tinyint ma więcej wartości niż 2. Szukam sposobu na odwzorowanie go tak, że każda akceptacja dla 1 jest fałszywa, lub wszystko, co akceptuje się jako 0, jest prawdziwe. albo zadziałałby dla mnie
czy istnieje sposób na podłączenie sortownika tekstowego do EF?
uzgodnione. Nienawidzę tego, że małe ints są używane do reprezentowania boolean. najwyraźniej zostało to zrobione przy użyciu hibernacji w java i to tworzy pola jako tinyint dla kompatybilności mysql. –
W starszych językach każda wartość inna niż 0 była traktowana jako prawdziwa, a 0 było traktowane jako fałszywe ... więc są częściowo winne :) – Dismissile
Wręcz przeciwnie, ma dużo sensu! Jeśli po prostu nie możesz zmienić schematu bazy danych (z jakichkolwiek powodów), to nie masz innej możliwości, jak tylko dostosować mapowanie. Chyba, że chcesz ujawnić właściwość z semantyką boolowską jako liczbą całkowitą, która jest brzydka. – proskor