Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.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# 无法在LINQ to Entities查询中构造实体或复杂类型?_C#_Entity Framework_Linq - Fatal编程技术网

C# 无法在LINQ to Entities查询中构造实体或复杂类型?

C# 无法在LINQ to Entities查询中构造实体或复杂类型?,c#,entity-framework,linq,C#,Entity Framework,Linq,这是我的代码,我希望有人能启发我: public async Task<ActionResult> Search() { NameValueCollection filter = HttpUtility.ParseQueryString(Request.Params.ToString()); string term = filter["term"]; var query = db.ProductGraphicsCards .Where(pgc =&g

这是我的代码,我希望有人能启发我:

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);
}
公共异步任务搜索()
{
NameValueCollection筛选器=HttpUtility.ParseQueryString(Request.Params.ToString());
字符串项=过滤器[“项”];
var query=db.ProductGraphicsCards
.Where(pgc=>pgc.GraphicsCardSKU.StartsWith(术语))
.Select(pgc=>newproductgraphicscard()
{
GraphicsCardSKU=pgc.GraphicsCardSKU,
GraphicsCardMemory=pgc.GraphicsCardMemory
};
var products=await query.ToListAsync();
列表项=新列表();
foreach(产品中的var产品)
{
添加(product.GraphicsCardSKU+“/”+product.GraphicsCardMemory.ToString());
}
返回Json(items,JsonRequestBehavior.AllowGet);
}
给我一个错误,我不明白为什么在这里

。选择(pgc=>newproductgraphicscard()

您正试图投影到实体类中。我不知道为什么,但实体框架不支持它(因此
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();

// ...
这里

。选择(pgc=>newproductgraphicscard()

您正试图投影到实体类中。我不知道为什么,但实体框架不支持它(因此
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();

// ...
我想问题就在这里。您将无法将结果提取到映射的实体
ProductGraphicsCard
。请尝试提取到未映射的DTO或匿名类型

var query = db.ProductGraphicsCards
    .Where(pgc => pgc.GraphicsCardSKU.StartsWith(term))
    .Select(pgc => new {
        pgc.GraphicsCardSKU,
        pgc.GraphicsCardMemory
    };
我想问题就在这里。您将无法将结果提取到映射的实体
ProductGraphicsCard
。请尝试提取到未映射的DTO或匿名类型

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

请添加完整错误。请添加完整错误。