1

クエリを実行するコードがいくつかあります。

int credenciadaId = 10;
var nome = from c in db.SanCredenciadas
           where c.CredenciadaId == credenciadaId
           select c.Name;

私の質問は2つの部分です。

クエリが1つだけNamestring. nome次のコードが有効になるようにクエリを変更するにはどうすればよいですか?

string name = nome;

さらに、現在のクエリ構文ではなくラムダ式とメソッド構文を使用するように、改善されたクエリを作成するにはどうすればよいですか?

4

3 に答える 3

6

このような

string name = nome.Single().Name;

あなたが望むものであると私が疑う結果が1つも得られない場合、これは失敗します。

ラムダを使用したクエリは次のようになります

var credenciadaId = 10;
var name = db.San_Credenciadas
    .Single(c => c.Credenciada_Id == credenciadaId).Name;
于 2012-08-21T13:56:29.800 に答える
2
var name = db.San_Credenciadas.First(c => c.Credenciada_Id == Credenciada_Id).Name
于 2012-08-21T13:56:03.090 に答える
1

collection.Single()使用する場合、またはcollection.Single(x => x.Onething == someValue)コレクションにそれに一致する単一のアイテムが含まれている必要がある場合は、例外がスローされることに注意してください。

についてcollection.First()は、実際にデータが含まれていることを確認したいだけなcollectionので、たとえば、if (collection.Any())

一般的に、私はそれを使用するか、そこから返された値がnullでないかどうcollection.SingleOrDefault()かを確認することを選択します。collection.FirstOrDefault()そうでない場合は、名前を取得できます。nullの場合は、必要に応じてエラーを処理できます。

于 2012-08-21T14:43:39.243 に答える