Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.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向EF传递参数时的填充视图_C#_Asp.net_Entity Framework_Function_Linq To Entities - Fatal编程技术网

C# 使用Linq向EF传递参数时的填充视图

C# 使用Linq向EF传递参数时的填充视图,c#,asp.net,entity-framework,function,linq-to-entities,C#,Asp.net,Entity Framework,Function,Linq To Entities,下面的代码正在运行。。CustomView已填充,没有任何错误 自定义视图 public static ProductView CustomView(Product data) { var view = new ProductView(); view.ID = data.ID; view.Number = data.Number; var invetoryCount = GetInvetoryCountNumber(data.Number); if (i

下面的代码正在运行。。CustomView已填充,没有任何错误

自定义视图

public static ProductView CustomView(Product data)
{
    var view = new ProductView();
    view.ID = data.ID;
    view.Number = data.Number;

    var invetoryCount = GetInvetoryCountNumber(data.Number);
    if (invetoryCount < 1)
        view.SoldOut = true;

    return view;
}
公共静态产品视图CustomView(产品数据)
{
var view=新产品视图();
view.ID=data.ID;
view.Number=data.Number;
var invetoryCount=GetInvetoryCountNumber(data.Number);
如果(投资计数<1)
view.SoldOut=true;
返回视图;
}
功能

public static List<ProductView> GetAll()
{
    using (var ctx = new DBSolutionEntities())
    {
        var data = ctx.Products.OrderBy(p => p.Name).ToList();
        return data.Select(CustomView).ToList();
    }
}
公共静态列表GetAll()
{
使用(var ctx=new DBSolutionEntities())
{
var data=ctx.Products.OrderBy(p=>p.Name.ToList();
返回数据.Select(CustomView.ToList();
}
}
我想在函数中添加一个附加参数,以跳过库存搜索

自定义视图-添加了bool

public static ProductView CustomView(Product data, bool skipInvCheck)
{
    var view = new ProductView();
    view.ID = data.ID;
    view.Number = data.Number;

    if(skipInvCheck)
    {
        var invetoryCount = GetInvetoryCountNumber(data.Number);
        if (invetoryCount < 1)
            view.SoldOut = true;
   }    

   return view;
}
publicstaticproductview自定义视图(产品数据,boolskipinvcheck)
{
var view=新产品视图();
view.ID=data.ID;
view.Number=data.Number;
如果(skipInvCheck)
{
var invetoryCount=GetInvetoryCountNumber(data.Number);
如果(投资计数<1)
view.SoldOut=true;
}    
返回视图;
}
当我将bool参数添加到CustomView并调用它时

public static List<ProductView> GetWithoutInvSoldOut()
{
    using (var ctx = new DBSolutionEntities())
    {
        var data = ctx.Products.OrderBy(p => p.Name).ToList();
        return data.Select(CustomView, false).ToList();
    }
}
publicstaticlist GetWithoutInvSoldOut()
{
使用(var ctx=new DBSolutionEntities())
{
var data=ctx.Products.OrderBy(p=>p.Name.ToList();
返回数据.Select(CustomView,false).ToList();
}
}
我得到以下错误:

无法从用法推断方法“System.Linq.Enumerable.Select(System.Collections.Generic.IEnumerable,System.Func)”的类型参数。尝试显式指定类型参数

传递参数时,如何调用return填充视图return data.Select(CustomView,false).ToList()

p、 当获得一条记录(而不是ToList)时,CustomView通过
返回CustomView(数据,false)

这里的主要问题是,
Select
方法需要一个只接受一个参数的函数,而
CustomView
需要两个参数。解决此问题的最简单方法是使用lambda表达式将
bool
参数导入
CustomView
方法

public static List<ProductView> GetWithoutInvSoldOut()
{
    using (var ctx = new DBSolutionEntities())
    {
        var data = ctx.Products.OrderBy(p => p.Name).ToList();
        return data.Select(x => CustomView(x, false)).ToList();
    }
}
publicstaticlist GetWithoutInvSoldOut()
{
使用(var ctx=new DBSolutionEntities())
{
var data=ctx.Products.OrderBy(p=>p.Name.ToList();
返回数据。选择(x=>CustomView(x,false)).ToList();
}
}

这里的主要问题是
Select
方法需要一个只接受一个参数的函数,而
CustomView
需要两个参数。解决此问题的最简单方法是使用lambda表达式将
bool
参数导入
CustomView
方法

public static List<ProductView> GetWithoutInvSoldOut()
{
    using (var ctx = new DBSolutionEntities())
    {
        var data = ctx.Products.OrderBy(p => p.Name).ToList();
        return data.Select(x => CustomView(x, false)).ToList();
    }
}
publicstaticlist GetWithoutInvSoldOut()
{
使用(var ctx=new DBSolutionEntities())
{
var data=ctx.Products.OrderBy(p=>p.Name.ToList();
返回数据。选择(x=>CustomView(x,false)).ToList();
}
}