gpt4 book ai didi

mysql - Entity Framework 、mysql 和 IQueryable

转载 作者:行者123 更新时间:2023-11-29 05:42:33 24 4
gpt4 key购买 nike

我正在将 Entity Framework 与 MySQL 结合使用,但无法正确执行查询。我试图获得一点来访问一种类型的对象。 IE。地址。这是我在存储库中的内容。

public IQueryable<Address> GetAddresses()
{
return from a in DBContext.addresses
select new Address
{
Id = a.instance,
City = a.city,
Country = a.country,
Owner = a.owner,
PostalCode = a.postcode,
Street = a.street
};

}

在服务层上,我添加了一个谓词,该谓词将被添加到 IQueryable 对象并执行查询

public Data.Address GetAddress(Func<Data.Address, bool> predicate)
{
List<Data.Address> items = referenceDataRepository.GetAddresses().Where(predicate).FirstOrDefault();

return items;
}

谓词是 ( x => x.Owner = 233)当检查 MySQL 日志时,我看到正在执行的查询不包含 where 子句,而且似乎在返回所有地址后应用谓词,这是非常昂贵的。

我是否遗漏了有关 IQueryable 及其执行方式的内容。

谢谢。

最佳答案

那是因为你定义谓词为Func<Data.Address, bool>您必须将其定义为表达式:Expression<Func<Data.Address, bool>> . Func转换你的 Where部分到对象的 linq。

关于mysql - Entity Framework 、mysql 和 IQueryable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5613934/

24 4 0