RenderActionから別のビューにnull値を渡そうとしています。しかし、中 ラムダクエリで使用されるNullableパラメータが無視されています
<div id="Global_Backlog_Board" class="Board_Panel">
@{Html.RenderAction("ListOfSingleCards", new
{
State_ID = 1
});}
</div>
HomeController.cs
public PartialViewResult ListOfSingleCards(int? Sprint_ID,
int State_ID = 1)
{
var Cards = db.Cards.Where(x => x.State_ID == State_ID &&
x.Sprint_ID == Sprint_ID &&
x.Deleted != 1 &&
x.Archive != 1).ToList();
return PartialView(Cards);
}
SprintManager.cshtml
...コントローラで、私のLINQ、ラムダ式が正しく経由するNULL値にもかかわらず、右のフィールドをロードしていない、との
Sprint_IDが渡され、ここではnullとしてロードされていますが、行を正しく読み込むためのクエリを取得できません。
は実際には、次のような作品:
var Cards = db.Cards.Where(x => x.State_ID == State_ID &&
x.Sprint_ID == null &&
x.Deleted != 1 &&
x.Archive != 1).ToList();
は、だから私はSprint_IDがnullと2つの別々のクエリのいずれかを実行した結果に応じている場合、私がチェックできると仮定したが、私は理由を理解したいのですが、私の元の試行は機能していません。
ありがとうございました!
多分それは少しオフトピックだか、それもあなたの問題を解決する可能性があります...しかし、あなたはラムダで複数の条件を作るあなたはそれらをすべて一括弧で入れるべきです。 f.ex '.Where(x =>(x.State_ID == State_ID && x.Sprint_ID == null && x.Deleted!= 1 && x.Archive!= 1))... ' – ub1k
次の答えを見てください:http://stackoverflow.com/questions/586097/compare-nullable-types-in-linq-to-sql/586109#586109 –
コメントありがとうございます。私は試してみましたが、私の問題は解決しません。私は自分の括弧の中に条件を入れたことはありません - これを行う理由はありますか?それはちょうど標準ですか? – Robodude