1
select a.stakebuyinid , a.StakeBuyInValue  from StakeBuyInByStakeCategories  AS b 
left join StakeBuyIns AS a on b.stakebuyinid = a.stakebuyinid 
where b.GametypeId = 1 and b.StakeCategoryID = 3 and a.Currencyid = 1

上記はLINQで書きたい私の単純なSQLクエリです

次の LINQ クエリを使用していますが、エラーが発生します:-「具体化された値が null であるため、値型 'Int32' へのキャストに失敗しました。結果型のジェネリック パラメーターまたはクエリで null 許容型を使用する必要があります。」

var query = (from v in db.StakeBuyInByStakeCategories.Where(x => x.GameTypeId == gametypeid && x.StakeCategoryId == stakecategoryid)
                        join u in db.StakeBuyIns.Where(y => y.CurrencyId == currencyid)
                               on v.StakeBuyInId equals u.StakeBuyInId into Temp
                           from vus in Temp.DefaultIfEmpty()
                       select new {
                           vus.StakeBuyInId,
                           vus.StakeBuyInValue )
4

2 に答える 2

1

仮定
StakeBuyInByStakeCategoriesList as IEnumerable<StakeBuyInByStakeCategories> し、StakeBuyInsList as IEnumerable<StakeBuyIns>

(from b in StakeBuyInByStakeCategoriesList 
 from a in StakeBuyInsList    
.Where(b.stakebuyinid equals a.stakebuyinid)
.DefaultIfEmpty()    
.Where( b.GametypeId == 1 and b.StakeCategoryID == 3 and a.Currencyid == 1)    
select new {Stakebuyinid=a.stakebuyinid, StakeBuyInValue=a.StakeBuyInValue}
于 2013-05-05T05:45:54.950 に答える