Linq To SQL автоматически обрабатывает защиту от SQL-инъекций. Безопасно передавать параметр в том виде, как он есть у пользователя, если вас беспокоит SQL-инъекция.
Он автоматически параметризует передаваемые вами параметры и очищает их.
Если вы беспокоитесь о XSS, то вы можете Html.Encode()
выводить, чтобы убедиться, что он безопасно передан обратно в интерфейс.
public User GetUserByEmail(string email)
{
User a = (from u in db.Users
where u.Email == email
select u).Single();
return a;
}
В настоящее время я не нахожусь перед IDE, так что код может быть не полностью синтетически корректным.