У меня есть этот элемент управления (db - это контекст Entity Framework):
if (db.Sites.Any(s => s.Name.Equals(name))) throw new NameAlreadyInUseException(name);
Когда я запускаю свои тесты и отлаживаюсь, он не дает ошибку:
Error CS0103: the name 's' does not exist in the current context.
Я, честно говоря Я не могу разобраться с этим, и Google на самом деле не помогает ... любая помощь приветствуется, спасибо заранее. Не правильно ли используется здесь? (Я все еще учусь, так что, возможно, я что-то пропустил, но мой код здесь выглядит нормально для меня)
Edit: отладчик вызывает ошибку в этой строке, и я не использую s в любом другом месте, кроме как внутри что если заявление. (Я отредактировал строку, чтобы показать, что происходит с if)
Edit2: полный код функции
public void CreateSiteOnDb(string connectionString, string name, int timezone, int sessionExpirationTimeInSeconds,
double minimumBidIncrement)
{
CheckInput_CreateSiteOnDb(connectionString, name, timezone, sessionExpirationTimeInSeconds, minimumBidIncrement);
try
{
using (var db = new AuctionSiteContext(connectionString))
{
if (db.Sites.Any(s => s.Name.Equals(name))) throw new NameAlreadyInUseException(name);
var site = new Entities.Site
{
Name = name,
Timezone = timezone,
MinimumIncrement = minimumBidIncrement,
SessionExpirationInSeconds = sessionExpirationTimeInSeconds
};
db.Sites.Add(site);
db.SaveChanges();
}
}
catch(NameAlreadyInUseException)
{
throw;
}
catch(Exception)
{
throw new UnavailableDbException();
}
}
Edit3: ошибка, как показано при отладке