gpt4 book ai didi

c# - 传递参数时的显式转换

转载 作者:行者123 更新时间:2023-11-30 22:09:03 25 4
gpt4 key购买 nike

我的方法需要

params Expression<Func<TEntity, IQueryable<TEntity>>>[] included

作为参数。然后以这种方式使用它们:

IQueryable<TEntity> query = dbSet;
if(included!=null)
{
foreach(var z in included)
{
query.Include(z);
}
}

但是我无法调用此函数,因为此调用中抛出了一个错误:

Get(w=>w.Device, w=>w.DeviceUsage));

Error 10 Cannot implicitly convert type 'magazyn.Models.Device' to 'System.Linq.IQueryable'. An explicit conversion exists (are you missing a cast?)

如何修改调用以传递这两个参数?

最佳答案

您包含的表达式应为 Expression<Func<TEntity, object>> 类型- 它们用于从您正在查询的实体中选择包含的导航属性:

params Expression<Func<TEntity, object>>[] included

另外请记住,当您没有将表达式传递给您的方法时,参数数组将不会为空——它将为空。所以你可以跳过空检查

IQueryable<TEntity> query = dbSet;

foreach(var path in included)
query = query.Include(path);

关于c# - 传递参数时的显式转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21826080/

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