gpt4 book ai didi

entity-framework - 如何调用 lambda 表达式中的方法在 Entity Framework 中运行?

转载 作者:行者123 更新时间:2023-12-01 01:02:42 24 4
gpt4 key购买 nike

我有一个问题,请给 Entity Framework运行:

using (var context = new MyEFContext())
{
var result = context.Items.Select(item => new {Type = item.GetType()}).ToList();
}

但是我在调​​用系统方法时遇到了异常,例如 GetType() :(
LINQ to Entities does not recognize the method 'System.Type GetType()' method,
and this method cannot be translated into a store expression.

我尝试动态创建 lambda 表达式,但运行动态表达式有同样的问题。
如何以 lambda 表达式的形式将方法提供给 Entity Frameworkenter ?

最佳答案

您只需要在 Select() 之前调用 ToList()

using (var context = new MyEFContext())
{
var result = context.Items.ToList().Select(item => new {Type = item.GetType()}).ToList();
}

这将首先执行由 Entity Framework 执行的 context.Items.ToList() 部分,然后 Select 在 EF 之外的本地列表中工作

如果你只想要一个字段
var result = (from item in  context.Items
select new
{
field = item.yourfield
}).ToList().Select(p=> new {Type = p.field.GetType()}).ToList();

关于entity-framework - 如何调用 lambda 表达式中的方法在 Entity Framework 中运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21954004/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com