Ответ 1
var address = Context.Addresses.First(a => a.Id == addressId);
В настоящее время я планирую переключить свой "ручной запрос" на хороший 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;
}
Спасибо!
var address = Context.Addresses.First(a => a.Id == addressId);
Вы можете использовать методы Single
или First
.
Разница между этими методами заключается в том, что Single ожидает одну строку и генерирует исключение, если у нее нет одной строки.
Использование одинаковое для обоих из них
(на основе 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;
}