2016-05-14 13 views
1

私のdbから単一の値を選択する必要があります。dbから単一の値を選択

MyController.cs

using (var db = new MainDbContext()) 
    { 
     var getPhoto = db.Users.Where(u => u.Name == User.Identity.Name).Select(u => u.Photo); 
     var materializePhoto = getPhoto.ToList(); 
     var photo = materializePhoto[0]; 
    } 

は私がきちんとのIQueryableから文字列から私の値を変換するために、このようなものを行います。

私は 'FirstOrDefault'、 'First'、 'Default'のオプションを選択しています(IQuerableではなく文字列値を返すため)が読まれましたが、私のケースには適していないと思います。

質問はどのようにすればよいですか?私のコードをもっと簡単に短くするにはどうすればいいですか?

P.S .: db.Users.PhotoにはURLが含まれています。

+1

var photo = db.Users.Where(u => u.Name == User.Identity.Name).Select(u => u.Photo).FirstOrDefault(); ' –

+0

また、 : 'var photo = db.Users.FirstOrDefault(u => u.Name == User.Identity.Name).Select(u => u.Photo);' –

+0

@marc_s、私は熱心なローディングについて聞いています。テーブル全体を選択するのではなく、一度に必要な行を選択してください。本当?私のコードでこれを行うことはできますか?どこで詳しく読むことができますか? –

答えて

2

あなたはあなたのコード

var getPhoto = db.Users.Where(u => u.Name == User.Identity.Name).Select(u => u.Photo).FirstOrDefault(); 

FirstOrDefaultを追加する必要があるとはい、それは動作します。

2

ます。また、このよう

var photo = db.Users.Where(u => u.Name == User.Identity.Name).FirstOrDefault().Photo; 

を行うことができますまた、最初の写真値

1

を返しますデシベルから単一レコードを選択するFirstOrDefault()を使用してください。

関連する問題