Entity Framework 4: выбор одной записи - PullRequest
20 голосов
/ 26 января 2012

В настоящее время я планирую переключить мой код «ручного написания запросов» на симпатичную среду SQL, чтобы я мог оставить запросы или объекты SQL в рамках инфраструктуры вместо того, чтобы писать запросы самостоятельно.

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

Я в основном использовал SQL, такой как SELECT * FROM {0} WHERE Id = {1}.На мой взгляд, это не работает в EF4.

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

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

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

    Address adr = result as Address;

    return Address;
}

Спасибо!

Ответы [ 3 ]

41 голосов
/ 26 января 2012
var address = Context.Addresses.First(a => a.Id == addressId);
4 голосов
/ 26 января 2012

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

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

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

0 голосов
/ 14 февраля 2017

(на основе VS 2015) Если вы создаете .edmx (Добавить -> ADO.NET Entity Data Model).enter image description here

Выполните шаги для создания «.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;
}
...