Gram z Dapperem, próbując sprawdzić, czy jest to dobra, lekka alternatywa dla Entity Framework. Do tej pory byłem pod wrażeniem jego zdolności do szybkiego wyciągnięcia podmiotu <model>
z DB i pobrania go do IEnumerable modelu lub po prostu utworzenia pojedynczej instancji modelu. Bardzo śliskie.Czy Dapper może być używany do aktualizacji i wstawiania modeli?
Ale to, czego nie widzę, to łatwy sposób na zaktualizowanie tego modelu z powrotem do bazy danych.
Przykład:
public class Dog
{
public Guid Id { get; set; }
public int? Age { get; set; }
public string Name { get; set; }
public float? Weight { get; set; }
}
Możemy łatwo utworzyć IEnumerable psa następująco:
IEnumerable<Dog> dogs = connection.Query<Dog>("SELECT * FROM Dog")
Albo, dla pojedynczej instancji:
Dog dog = connection.Query<Dog>("SELECT * FROM Dog WHERE DogId = @dogid")
To wszystko działa świetnie. Ale teraz, jeśli wprowadzimy zmiany w "psie" (powiedzmy, po prostu zmieńmy jego wagę), istnieje łatwy, szybki i łatwy sposób na przeniesienie tego obiektu z powrotem do bazy danych bez konieczności ręcznego dodawania zapytania, wystawiania każdego pola ?
Dzięki!
Wydaje się, że przechodząc '' Lista powinny [wstawić kilka pozycji] (http://stackoverflow.com/a/6500834/69809)? Btw trzymać się sparametryzowanych zapytań ("SELECT * FROM Dog WHERE DogId = @ DogId'), chyba że lubisz ataki sql injection. –
Groo
Jak działałaby ta składnia? Patrząc na ReadMe na GitHub, nie widzę tego przykładu. https://github.com/StackExchange/dapper-dot-net –
Prawdopodobnie podoba mi się odpowiedź, do której dołączyłem: 'connection.Execute (@" update Dog set Name = @ Name, Age = @ Age ", list);'? – Groo