Подтвердить что ты не робот

Entity Framework 4: выбор одиночной записи

В настоящее время я планирую переключить свой "ручной запрос" на хороший SQL-фрейм, поэтому я могу оставить запросы или sql-объекты в фреймворке, вместо того, чтобы самостоятельно писать запросы.

Теперь мне интересно, как я могу получить одну запись из моей таблицы в Entity Framework 4?

В основном я использовал SQL, например SELECT * FROM {0} WHERE Id = {1}. Это не работает в EF4, насколько мне известно.

Есть ли способ выбрать одну запись на основе ID из моего контекста?

Что-то вроде:

public Address GetAddress(int addressId)
{
    var result = from Context.Addresses where Address.Id = addressId;

    Address adr = result as Address;

    return Address;
}

Спасибо!

4b9b3361

Ответ 1

var address = Context.Addresses.First(a => a.Id == addressId);

Ответ 2

Вы можете использовать методы Single или First.

Разница между этими методами заключается в том, что Single ожидает одну строку и генерирует исключение, если у нее нет одной строки.

Использование одинаковое для обоих из них

Ответ 3

(на основе VS 2015). Если вы создаете .edmx(Add → ADO.NET Entity Data Model). введите описание изображения здесь

Перейдите к шагам, чтобы создать ".edmx", и используйте следующую процедуру для запуска хранимой процедуры. emailAddress - это параметр, который вы передаете в хранимую процедуру g_getLoginStatus. Это потянет первую строку в LoginStatus, а status - это столбец в базе данных:

bool verasity = false;
DBNameEntities db = new DBNameEntities();   // Use name of your DBEntities

var LoginStatus = db.g_getLoginStatus(emailAddress).FirstOrDefault();

if ((LoginStatus != null) && (LoginStatus.status  == 1))
{
      verasity = true;
}