Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法获取相关表的逻辑_C#_Entity Framework_Linq_Asp.net Web Api - Fatal编程技术网

C# 无法获取相关表的逻辑

C# 无法获取相关表的逻辑,c#,entity-framework,linq,asp.net-web-api,C#,Entity Framework,Linq,Asp.net Web Api,产品价值 SkuId OptionId ProductId valueid 1 2 264 10 产品选项 OptionId OptionName 2 Size 3 color 4 Weight productoptionvalue ValueId OptionId ValueName 10 2 Small

产品价值

SkuId   OptionId    ProductId   valueid
1            2        264        10 
产品选项

OptionId    OptionName  
2             Size  
3            color  
4            Weight 
productoptionvalue

ValueId OptionId ValueName  
 10        2        Small   
 11        2       Medium   
现在我想从不同的表中获取基于id的名称。我写信来要身份证

ProductSKUValues = (from resp in productSkuValueRepository.GetProductSkuValuesById(id)
select new Contracts.Models.ProductSKUValueResponse()
 {
     SkuId = resp.SkuId,
     OptionId =  resp.OptionId,
     ValueId = resp.ValueId
 }).ToList()
linq查询

public IQueryable<ProductSKUValue> GetProductSkuValuesById(int Id)
{
    return DbSet.Where(a => a.ProductId == Id) ;
}

我认为您需要使用联接:

ProductSkuValues.Where(x => x.ProductId == id)
     .Join(ProductOptions, p => p.OptionId, po => po.OptionId, (p, po) => new 
          { 
                p.SkuId,   
                p.OptionId, 
                //p.ProductId, 
                p.ValueId, 
                po.OptionName 
          })
     .Join(ProductOptionValues, po => new { po.OptionId, po.ValueId }, pov => new { pov.OptionId, pov.ValueId }, (po, pov) => new 
         { 
                po.SkuId,   
                po.OptionId, 
                //po.ProductId,                     
                po.OptionName,
                po.ValueId, 
                pov.ValueName,
         });
ProductSkuValues.Where(x => x.ProductId == id)
     .Join(ProductOptions, p => p.OptionId, po => po.OptionId, (p, po) => new 
          { 
                p.SkuId,   
                p.OptionId, 
                //p.ProductId, 
                p.ValueId, 
                po.OptionName 
          })
     .Join(ProductOptionValues, po => new { po.OptionId, po.ValueId }, pov => new { pov.OptionId, pov.ValueId }, (po, pov) => new 
         { 
                po.SkuId,   
                po.OptionId, 
                //po.ProductId,                     
                po.OptionName,
                po.ValueId, 
                pov.ValueName,
         });