我遇到了几个我打电话的问题,但里面还有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) 我在一个解决方案中有一个控制台应用程序项目和库项目(dll).库项目有app.config文件,我将连接字符串存储到数据库.控制台应用程序引用此dll.
当我编译控制台应用程序并使用库部署它时,当我需要在部署应用程序后更改连接字符串时,我无法访问属于dll的app.config文件.
这是我看到的文件,但不是.config文件:
我哪里做错了?
我正在尝试使用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以便最高的总和出现?
我正在开发一个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)