Używam EF 4 STE do modelowania obiektu Attachment. The Załącznik zawiera nazwę, opis, datę i najważniejsze dane (byte[]
). Aby zoptymalizować ładowanie, nie chcę pobierać właściwości Data, dopóki nie jest to absolutnie konieczne, tj. Gdy użytkownik kliknie Download
od klienta.
Starając się postępować zgodnie z tym podejściem, użyłem opisanej techniki dzielenia stołu tutaj. Rozdzielam moje Załącznik zagłębić się w Załącznik (Nazwa, opis, data) i AttachmentData (Dane). Jest to relacja 1 do 1 w moim modelu EF. Wszystko działa świetnie, dopóki nie spróbuję usunąć Załącznik bez AttachmentData (to znaczy. attachment.AttachmentData == null
). Otrzymuję następujący wyjątek:
Napotkano nieprawidłowe dane. Brakuje wymaganego związku. Sprawdź StateEntries, aby określić źródło naruszenia ograniczenia.
widziałem podobny post, ale nie mogę sprawić, żeby działało to z STE i ApplyChanges
metoda rozszerzenia.
Teraz mój kod dostępu do danych jest prosty: wzywam kontekst ApplyChanges()
śledzony przez SaveChanges()
.
Próbowałem prostej funkcji usuwania SQL i zmapowałem ją do obu podmiotów, która faktycznie działała; jednak złamał wstawkę. Nie mogę zmapować funkcji wstawiania dla wszystkich właściwości do obu elementów.
Jakieś pomysły dotyczące innych opcji, które mogę wypróbować? Czy związek między załącznikiem a załącznikami może być opcjonalny? Kiedy robię to od 1 do 0+, pojawia się błąd odwzorowania tego Their primary keys may collide
.
Otwórz na wszelkie sugestie.
Dzięki!