Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/32.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查询上实现try-catch块?_C#_Linq_Exception - Fatal编程技术网

C# 如何在返回动态类型的linq查询上实现try-catch块?

C# 如何在返回动态类型的linq查询上实现try-catch块?,c#,linq,exception,C#,Linq,Exception,首先,我想知道是否有必要在try-catch块中使用访问DAL的linq语句,以便将错误输入到日志中。其次,我有以下代码,但正如您所看到的,它返回一个动态对象new{s.ID,s.Name}。我想知道我该怎么说这样的话 try-catch块中的表达式 是否应将整个块(包括return语句)放在try-catch块中,还是应创建一个自定义对象,并仅将填充自定义对象的初始化代码放在try-catch块中,如果未引发异常,则返回此自定义对象 using (var rep = new Repositor

首先,我想知道是否有必要在try-catch块中使用访问DAL的linq语句,以便将错误输入到日志中。其次,我有以下代码,但正如您所看到的,它返回一个动态对象
new{s.ID,s.Name}
。我想知道我该怎么说这样的话 try-catch块中的表达式

是否应将整个块(包括return语句)放在try-catch块中,还是应创建一个自定义对象,并仅将填充自定义对象的初始化代码放在try-catch块中,如果未引发异常,则返回此自定义对象

using (var rep = new Repository<Profile>())
            {
                var vals = rep.FindWhere(p => p.ProjectID == projectID)
                              .OrderBy(p => p.Name)
                              .Select(
                                  s => new
                                      {
                                          s.ID,
                                          s.Name
                                      }).ToList();
                return Json(vals, JsonRequestBehavior.AllowGet);
            }
使用(var rep=new Repository())
{
var vals=rep.FindWhere(p=>p.projectd==projectd)
.OrderBy(p=>p.Name)
.选择(
s=>新
{
s、 身份证,
s、 名字
}).ToList();
返回Json(VAL、JsonRequestBehavior.AllowGet);
}

第一个问题:否,除非您想“将错误输入日志”

第二个问题:

try
{
    using (var rep = new Repository<Profile>())
                {
                    var vals = rep.FindWhere(p => p.ProjectID == projectID)
                                  .OrderBy(p => p.Name)
                                  .Select(
                                      s => new
                                          {
                                              s.ID,
                                              s.Name
                                          }).ToList();
                    return Json(vals, JsonRequestBehavior.AllowGet);
                }
} 
catch(Exception ex)
{
   // use ex here
   ErrorLog.Add(ex);

   // return whatever makes sense for you clientside
   return Json(false, JsonRequestBehavior.AllowGet);

   // or just throw exception and use error callback in js
   throw;
}
试试看
{
使用(var rep=new Repository())
{
var vals=rep.FindWhere(p=>p.projectd==projectd)
.OrderBy(p=>p.Name)
.选择(
s=>新
{
s、 身份证,
s、 名字
}).ToList();
返回Json(VAL、JsonRequestBehavior.AllowGet);
}
} 
捕获(例外情况除外)
{
//在这里使用ex
ErrorLog.Add(ex);
//返回任何对你有意义的客户端
返回Json(false,JsonRequestBehavior.AllowGet);
//或者在js中抛出异常并使用错误回调
投掷;
}

不清楚你在问什么。匿名类型有什么问题?嗨,对不起,请查看更新