web-dev-qa-db-ja.com

Entity Framework 4:単一レコードの選択

現在、「手動のクエリ作成」コードをNice SQLフレームワークに切り替えることを計画しているので、クエリを自分で作成する代わりに、クエリまたはsqlをフレームワークに残すことができます。

今、Entity Framework 4のテーブルから単一のレコードを取得する方法を疑問に思っていますか?

私は主にSELECT * FROM {0} WHERE Id = {1}のようなSQLを使用しました。私が関係する限り、それはEF4では機能しません。

コンテキストから単一のIDベースのレコードを選択する方法はありますか?

何かのようなもの:

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

    Address adr = result as Address;

    return Address;
}

ありがとうございました!

20
SeToY
var address = Context.Addresses.First(a => a.Id == addressId);
41
Ray

SingleまたはFirstメソッドを使用できます。

これらのメソッドの違いは、Singleは単一の行を予期し、単一の行がない場合は例外をスローすることです。

使用法は両方とも同じです

4
duedl0r

(VS 2015に基づく).edmxを作成する場合(追加-> ADO.NETエンティティデータモデル)。 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;
}
0
Dan B