LINQ to entitiesクエリが値を返さない場合のデフォルト値の返し方

defaultifempty entity-framework linq linq-to-entities

質問

LINQ to entities式では、次のようになります。

var vote = (from vote in db.Vote where
    vote.Voter.Id == user.Id
    select v).FirstOrDefault();

投票がないときにデフォルト値が表示されるように、DefaultIfEmpty値を追加する方法

受け入れられた回答

私は非常に単純なアプローチをとることにしました。それは後者の消去された答えによって推奨されました:

var vote = (from vote in db.Vote 
            where vote.Voter.Id == user.Id
            select v).FirstOrDefault();
if (vote == null) {
    vote = new Vote() { .... };
    db.AddToVoteSet(vote);
}

人気のある回答

Voteが参照型であり、そのデフォルト値としてnullを使用する場合、もう1つの方法は、null合体演算子を使用することです。

var vote = (db.Vote
   .Where(v => v.Voter.Id == user.Id)
   .FirstOrDefault()) ?? defaultVote;


Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ