Zacząłem zajmować się LINQ To SQL i próbuję rozwiązać ten prymitywny problem. Mam bardzo prosty stół z dwiema kolumnami.Wybierz jeden wiersz z LINQ DO SQL
- Nick - klucz unikalny
- Hasło
Chciałbym usunąć wiersz z jakąś wartość nick.
użyć tej metody:
public void DeleteSpiritUser(string nick)
{
var user = from u in _dc.Spirit_Users where u.Nick == nick select u;
using (var scope = new TransactionScope())
{
_dc.Spirit_Users.DeleteOnSubmit(user.First());
try
{
_dc.SubmitChanges();
}
catch (Exception exception)
{
throw exception;
}
scope.Complete();
}
}
Problem polega na tym, że muszę użyć user.First(), jeśli chcę tylko jednego wiersza, chciałbym wybierz z LINQ tylko jeden wiersz wiedzieć IEnumerable, ponieważ Nick jest wyjątkowy .
Dlaczego odłożyłeś próbny odłów, ponieważ zakres został już zadeklarowany przy użyciu bloku użytego, a transakcja zostanie przerwana, jeśli nie zostanie wywołana cała metoda? –
@Davide Piras: pierwotne pytanie już to miało - właśnie to skopiowałem. Ale zgadzam się - to trochę nietypowe - albo złapać i ** obsłużyć ** wyjątek, albo po prostu pozwolić, by to się stało i spaprać w powietrze .... –
@Davide Piras: poprawiono moją odpowiedź - to ma więcej sensu! Jeśli wystąpi wyjątek, osoba dzwoniąca musi się nim zająć –