DBにクエリがあります:
SELECT GreenInventoryBlendGradeID,bgx.blendgradeid,
bgX.GreenBlendGradeTypeID,[Description]
FROM [GreenInventory] gi
INNER JOIN [GreenInventoryBlendGradeXref] bgX
ON bgX.[GreenInventoryID] = gi.[GreenInventoryID]
INNER JOIN [BlendGrade] bg
ON bg.[BlendGradeID]=bgx.[BlendGradeID]
3 つのレコードが返されます。
タイプ ID の説明
1 XR
2 XR
1 XF2
リンク:
var GreenInventory = (from g in Session.GreenInventory
.Include("GreenInventoryBlendGradeXref")
.Include("GreenInventoryBlendGradeXref.BlendGrade")
.Include("GreenInventoryBlendGradeXref.GreenBlendGradeType")
.Include("GreenInventoryWeightXref")
.Where(x => x.GreenInventoryID == id && x.GreenInventoryBlendGradeXref.Any(bg=>bg.GreenBlendGradeTypeID > 0) )
select g);
単純な - (x => x.GreenInventoryID == id) を含むさまざまな Where 句を試しましたが、常に最初の 2 つのレコードのみが返されます。
何か案は?
次のことを試してみると:
var GreenInventory = (from gi in Session.GreenInventory.Where(y => y.GreenInventoryID == id)
join bgX in Session.GreenInventoryBlendGradeXref.DefaultIfEmpty() on gi.GreenInventoryID equals bgX.GreenInventoryID
join bg in Session.BlendGrade.DefaultIfEmpty() on bgX.BlendGradeID equals g.BlendGradeID
select new { GreenInventory = gi, GreenInventoryBlendGradeXref = bgX, BlendGrade = bg });
各オブジェクトの 3 つを取得し、正しい情報が BlendGrade オブジェクトにあります。3 つの GreenInventory オブジェクトは同じようです。それぞれに、以前と同じ 2 つのレコードを示す GreenInventoryBlendGradeXref オブジェクトが 2 つ含まれています。
したがって、元の問題が何であったかはわかりません。また、これがそれを解決するための最良の方法であるかどうかもわかりません。
答えてくれてありがとう。さらに考えがある場合は、お知らせください。