标签: iqueryable

获取本月的所有订单

这是我当前的月份:

model.SalesForMonth = orders.Where(o => o.DateOfPayment.Value.Month == DateTime.Now.Month)
                            .Select(o => o.Total)
                            .Sum();
Run Code Online (Sandbox Code Playgroud)

这不符合预期,因为它也取得了去年同月发生的订单.

当然我可以比较年月,但必须有一个我不熟悉的更具表现力的解决方案.

我怎样才能使用Linq干净利落地做到这一点?(不确定是否相关但是orders来自实体框架的IQueryable)

c# datetime iqueryable date-range

0
推荐指数
1
解决办法
146
查看次数

实体框架:返回按值和同一查询中某些列的总和进行分组

我有一个表,我想在实体框架工作中执行以下操作:

1-从对象返回一些列而不是所有列(我为这个新类型创建了新类,只包含我需要的列,并在select语句中返回其中的值.

2-返回列应按某些列分组,其中两列将包含计数值.(这是我的问题).

有关更多说明:我需要在Entity Framework中对我的数据集的可共享对象映射以下查询:

select SUM (Col1) SUM_Col1, SUM (Col2) SUM_Col2, COUNT (*) RECORDS, Col3, Col4, Col5
from myTable
where col3 = 'some value'
group by Col3, Col4, Col5;
Run Code Online (Sandbox Code Playgroud)

我的分组审判如下:

        query = from record in context.tables
                group record by new
                {
                    record.Col3,
                    record.Col4,
                    record.Col5,
                } into g
                select new QueryResult
                {
                    Col1 = (need Sum of Col1 here),
                    Col2 = (need Sumn of Col2 here),
                    Col3 = g.Key.Col3,
                    Col4 = g.Key.Col4,
                    Col5 = g.Key.Col5,
                    Col6 = ( need count …
Run Code Online (Sandbox Code Playgroud)

c# sql entity-framework iqueryable entity-framework-6

0
推荐指数
1
解决办法
9937
查看次数

采用 IQueryable<T> 并修改它的 void 方法似乎不会保留修改

我有一个方法:

public void ExterminateCuddlyKittens(IQueryable<Kitten> data)
{
    data = data.Where(c => !c.Cuddly);
}
Run Code Online (Sandbox Code Playgroud)

它收养了一些小猫,并带走了没有的小猫Cuddly = true

我用这段代码测试了这个方法:

List<Kitten> myKittens = new List<Kitten>();
myKittens.Add(new Kitten() { Cuddly = true; });

ExterminateCuddlyKittens(myKittens.AsQueryable());

Assert.AreEqual(0, myKittens.Count);
Run Code Online (Sandbox Code Playgroud)

调试我的方法时,智能感知显示它正确地消灭了小猫,并且在方法末尾有一个空集合。

然而,当我们回到测试中时,myKittens 的计数仍然为 1,并且小猫逃脱了灭绝。

我不知道为什么,作为data参考,不是吗?因此,我希望修改集合能够持续下去。但是我不确定是否AsQueryable正在创建副本或其他内容。

有任何想法吗?

c# iqueryable

0
推荐指数
1
解决办法
156
查看次数

如何将viewmodel修改为Expression <Func <T,bool >>?

捎带一个非常相似的问题 ......

我需要从ViewModel生成一个表达式作为搜索谓词传递.我需要能够根据用户提供的内容包含/排除查询参数.例:IQueryable.Where

public class StoresFilter
{
    public int[] Ids { get; set; }

    [StringLength(150)]
    public string Name { get; set; }

    [StringLength(5)]
    public string Abbreviation { get; set; }

    [Display(Name = "Show all")]
    public bool ShowAll { get; set; } = true;

    public Expression<Func<Store, bool>> ToExpression()
    {
        List<Expression<Func<Store, bool>>> expressions = new List<Expression<Func<Store, bool>>>();

        if (Ids != null && Ids.Length > 0)
        {
            expressions.Add(x => Ids.Contains(x.Id));
        }
        if (Name.HasValue())
        {
            expressions.Add(x => x.Name.Contains(Name)); …
Run Code Online (Sandbox Code Playgroud)

c# ienumerable iqueryable func expression-trees

0
推荐指数
1
解决办法
120
查看次数

删除空值后,将IQueryable &lt;int?&gt;转换为IQueryable &lt;int&gt;

我有and和IQueryable<int>and 在较早的处理阶段IQueryable<int?>使用a从中删除了空值Where()。我现在希望UNION()在两个可查询对象之间执行a ,但是因为一个是可空类型,而另一个则不能。

我该如何解决?

c# linq nullable iqueryable

0
推荐指数
1
解决办法
66
查看次数