2016-05-14 75 views

答えて

1
var query = db.ProductGraphicsCards 
    .Where(pgc => pgc.GraphicsCardSKU.StartsWith(term)) 
    .Select(pgc => new ProductGraphicsCard() 
    { 
     GraphicsCardSKU = pgc.GraphicsCardSKU, 
     GraphicsCardMemory = pgc.GraphicsCardMemory 
    }; 

私はこの問題はここにあると仮定します。マッピングされたエンティティProductGraphicsCardに結果を抽出することはできません。マップされていないDTOまたは匿名のタイプに抽出しようとします。

var query = db.ProductGraphicsCards 
    .Where(pgc => pgc.GraphicsCardSKU.StartsWith(term)) 
    .Select(pgc => new { 
     pgc.GraphicsCardSKU, 
     pgc.GraphicsCardMemory 
    }; 
1

.Select(pgc => new ProductGraphicsCard()

なぜ

public async Task<ActionResult> Search() 
{ 
    NameValueCollection filter = HttpUtility.ParseQueryString(Request.Params.ToString()); 

    string term = filter["term"]; 
    var query = db.ProductGraphicsCards 
    .Where(pgc => pgc.GraphicsCardSKU.StartsWith(term)) 
    .Select(pgc => new ProductGraphicsCard() 
    { 
     GraphicsCardSKU = pgc.GraphicsCardSKU, 
     GraphicsCardMemory = pgc.GraphicsCardMemory 
    }; 

    var products = await query.ToListAsync(); 

    List<string> items = new List<string>(); 

    foreach (var product in products) 
    { 
     items.Add(product.GraphicsCardSKU + "/" + product.GraphicsCardMemory.ToString()); 
    } 

    return Json(items, JsonRequestBehavior.AllowGet); 
} 

は私にエラーを与え、私は理解できませんエンティティクラスに投影する私はその理由を伝えることはできませんが、Entity Framework(したがってNotSupportedException)ではサポートされていません。この問題を解決するために

一つの方法は、匿名型に投影することである。

var query = db.ProductGraphicsCards 
    .Where(pgc => pgc.GraphicsCardSKU.StartsWith(term)) 
    .Select(pgc => new 
    { 
     GraphicsCardSKU = pgc.GraphicsCardSKU, 
     GraphicsCardMemory = pgc.GraphicsCardMemory 
    }; 

var products = await query.ToListAsync(); 

// ... 
+0

ありがとうございました! –

関連する問題