Powiedzmy, że przeszukuję bazę danych i załaduję listę przedmiotów. Następnie otwieram jeden z elementów w formularzu widoku szczegółowego, a zamiast ponownego wysyłania zapytania do elementu z bazy danych, tworzę instancję elementu ze źródła danych na liście.Zaktualizuj rekord bez wcześniejszych zapytań?
Czy istnieje sposób na aktualizację rekordu bazy danych bez pobrania rekordu pojedynczego elementu?
Oto przykład, jak robię to teraz:
dataItem itemToUpdate = (from t in dataEntity.items
where t.id == id
select t).FirstOrDefault();
Następnie po wyciągnięciu rekord zaktualizować niektóre wartości w pozycji i przesunąć rekord powrotem:
itemToUpdate.itemstatus = newStatus;
dataEntity.SaveChanges();
Myślę byłby lepszy sposób na zrobienie tego, jakieś pomysły?
To nie jest strasznie zły sposób na robienie rzeczy. Czy masz równoczesny dostęp do tego stołu? –
Myślę, że jest to użycie, które ORM jak EF jest dokładnie tam, aby służyć. Aby umożliwić wykonywanie operacji w kontekście aplikacji na obiektach, które chcesz utworzyć/zmodyfikować/usunąć, bez obaw o zasadnicze wdrożenie bazy danych? –
Myślę, że dla programistów z doświadczeniem w TSQL, którzy próbują zaakceptować i zaakceptować ORM, jest to trochę mało wydajne, aby wyszukać rekord tylko po to, aby go zaktualizować i nigdy nie wykorzystywać pobranych danych. Ta koncepcja, że deweloper nie musi zajmować się podstawową implementacją DB, to garść. Im więcej programista wie o całym systemie, tym lepsze może być rozwiązanie. Opcje nigdy nie są złe. – barrypicker