ASP.NET /实体框架:查询的多个计数

时间:2017-01-20 12:55:10

标签: c# asp.net entity-framework linq

我正在使用ASP.NET Core和Entity Framework Core。我想为用户提供搜索功能,他们可以设置所需结果的数量,例如:

SearchModel
{
    public string Name{ get; set; }
    public string Phone { get; set; }
    public int Count { get; set; }
}

Count是所需的结果数。

在回复用户的回复中,我想提供以下内容(当然除了实际的结果/行):

  • 结果数
  • 搜索过滤器的总结果数(换句话说,如果他们没有提供特定的计数,他们会获得多少行)
  • 总行数(不论过滤器)

这就是我现在所拥有的:

var totalCount = await MyDBContext.FirstEntity.CountAsync();

var filterResult = await (from c in MyDBContext.FirstEntity

                        join mt in MyDBContext.SecondEntity
                        on c.SomeID equals mt.SomeID

                        join l in MyDBContext.ThirdEntity
                        on mt.OtherID equals l.OtherID

                        where c.Name.Contains(model.Name)
                        && c.Phone.Contains(model.Phone)

                        select new SomeModel
                        {
                            SomeID = c.SomeID,
                            OtherValue = c.OtherValue,
                            OtherValue = l.OtherValue
                        }

                    )
                    .Distinct()
                    .Take(model.Count)
                    .ToListAsync();

修改此查询的最佳方式是什么?Count() filterResultTake()部分的所有行以及<button type="button" title="<?php echo $this->__('Add to Cart') ?>" class="button btn-cart" onclick="setLocation('<?php echo (string)Mage::helper('checkout/cart')->getAddUrl($_product);?>')"><span><span><?php echo $this->__('Add to Cart') ?></span></span></button> 部分的相同查询?

有没有办法在单个查询中执行此操作,还是必须执行多个查询才能达到目标?

0 个答案:

没有答案