Załóżmy, że mam tabelę z kolumną Opis, varchar (100). Jeśli spróbujesz wstawić ciąg znaków zawierający więcej niż 100 znaków, wstawienie się nie powiedzie.Entity Framework 4.0 automatycznie obcina/przycina łańcuch przed wstawieniem
Czy istnieje sposób w Entity Framework do automatycznego obcinania lub przycinania łańcucha w celu dopasowania do kolumny przed wstawieniem do kolumny? W moim scenariuszu, naprawdę nie obchodzi mnie, czy ciąg jest obcinany, po prostu chcę go wstawić, a nie tylko awarię i rejestrowanie rror.
Ponieważ model zna już ograniczenia długości, myślałem, że może to być metoda dla Entity Framework, aby to zrobić dla mnie.
Jeśli to nie jest obsługiwane, jaki jest najlepszy sposób na zrobienie tego? Rozszerz automatycznie generowane klasy częściowe i nadpisaj metody On * Changed? Wolałbym nie zakodować na sztywno limitów długości, ale raczej użyć limitów długości już zdefiniowanych w modelu encji. Jak mogę uzyskać dostęp do tego?
Edit
Moje ostateczne rozwiązanie było wdrożenie ON * Zmieniono częściowe sposobu wygenerowany automatycznie podmiotu.
Użyłem this method pobierania obiektu ObjectContext z instancji jednostki, a następnie użyłem poniższej metody do wyodrębnienia maksymalnej długości i obcięcia łańcucha.
To działa, ale o dziwo, tylko dla niektórych kolumn. Wygląda na to, że EF nie może pobrać kolumny z arbitralnych kolumn w moim przypadku. –
@ReuelRibeiro Jeśli możesz utworzyć kroki repro i umieścić je w nowym pytaniu, z przyjemnością sprawdzę, czy mogę to naprawić. Nie miałem żadnych problemów z tym kodem, chociaż ostatnio przestałem go używać teraz, gdy Entity Framework Extensions ma wbudowaną tę funkcję i używamy go teraz. – Jaxidian