小编Alb*_*lta的帖子

展平处理的AggregateExceptions

我遇到了几个我打电话的问题,但里面还有flatten另一个问题!这显然意味着它们正在链中传播并被卷入另一个链中.有没有办法递归展平所有内部AggregateExceptions?通常,我将使用句柄委托处理这些,但如果有另一个内部AggregateExceeption,则返回false.我没有妥善处理这些问题吗?AggregateExceptionAggregateExceptionAggregateException

编辑:既然我已经打电话展平,看来问题是,它没有被抓住,直到后来方式在调用堆栈.这是我正在调用Flatten()的代码.要在堆栈跟踪中使用,此方法称为WriteExceptionRecord(string,FileInfo):

do
{
    try
    {
        using (var stream = file.Open(FileMode.Append, FileAccess.Write, FileShare.None))
        {
            using (StreamWriter writer = new StreamWriter(stream))
            {
                await writer.WriteLineAsync(data);
            }
        }
    }
    catch (AggregateException ex)
    {
        ex.Flatten().Handle((x) =>
        {
            if (x is IOException)
            {
                retryNeeded = true;
                retryLeft--;
                Thread.Sleep(500);
                return true;
            }

            logger.ErrorException("Could not write to exception file: " + data, ex);
            return false;
        });
    }
}
while (retryNeeded && retryLeft > 0);
Run Code Online (Sandbox Code Playgroud)

但是,堆栈跟踪显示它没有被捕获.相反,它会在调用堆栈之后被捕获.以下是出于安全原因删除了一些识别信息的跟踪:

System.AggregateException: One or more errors occurred. ---> …
Run Code Online (Sandbox Code Playgroud)

c# exception task-parallel-library aggregateexception

21
推荐指数
3
解决办法
2万
查看次数

库项目中的.Net app.config

我在一个解决方案中有一个控制台应用程序项目和库项目(dll).库项目有app.config文件,我将连接字符串存储到数据库.控制台应用程序引用此dll.

当我编译控制台应用程序并使用库部署它时,当我需要在部署应用程序后更改连接字符串时,我无法访问属于dll的app.config文件.

这是我看到的文件,但不是.config文件:

  • library.dll
  • library.pdb
  • console.application
  • console.exe
  • console.exe.manifest
  • console.pdb
  • console.vshost.application
  • console.vshest.exe

我哪里做错了?

.net configuration

4
推荐指数
1
解决办法
5596
查看次数

LINQ GroupBy with Sum

我正在尝试使用LINQ查询获取客户最受欢迎的产品(按数量排序最多).运行此SQL查询时,我得到了正确的结果:

SELECT TOP(15) i.ProductId, p.Description, Sum(i.Quantity) As QuantityOrdered
FROM Orders o 
INNER JOIN OrderItems i ON o.Id = i.OrderId
INNER JOIN Products p ON i.ProductId = p.Id 
WHERE o.ClientId = 19
GROUP BY ProductId, Description
ORDER BY QuantityOrdered DESC
Run Code Online (Sandbox Code Playgroud)

它给了我正确的结果:

在此输入图像描述

我正在尝试使用LINQ复制这些结果,这是我到目前为止所拥有的:

var query = _context.Set<OrderItem>()
            .Where(oi => oi.Order.ClientId == input.ClientId)
            .GroupBy(oi => oi.ProductId)
            .Select(group => group.Sum(item => item.Quantity))
            .Take(15);
Run Code Online (Sandbox Code Playgroud)

我在这里得到的是Sums列表,但我不知道如何包含产品ID和描述.其次,我如何包含OrderBy以便最高的总和出现?

c# linq

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

如何覆盖分部类中的属性?

我正在开发一个MVC应用程序,我在开发它时使用了EF 4.0.我已经从模型中创建了类.现在,我想为MVC创建的每个类添加更多类.

恩.在下面的代码中,我得到了类Location.现在,我想再创建一个类(Partial class)如何覆盖分部类中的属性?

怎么做 ?

namespace Entities
{
   public partial class Location
   {               
       public int Id { get; set; }

       public string Name { get; set; }
       public string Remark { get; set; }      
       public string State { get; set; }       
       public string Region { get; set; }
       public string PinCode { get; set; }

       public virtual ICollection<Comment> Comments { get; set; }
   }    
}
Run Code Online (Sandbox Code Playgroud)

model-view-controller asp.net-mvc entity entity-framework-4

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