我正在研究Discord.Net项目,并且我试图找出一种更有效地记录日志的方法,因为我这样做的方法感觉有点过顶了!
我正在考虑的两个方法示例:
var channel = new Channel();
try
{
channel = database.Channels.Where(
c => c.ChannelId == channelId)
.Include(c => c.Server).Single();
}
catch(Exception exception)
{
Logger.Log(LogSeverity.Error,
$"{ClassName}/{MethodName} - {exception.Message}");
return;
}
然后...
var channel = database.Channels.Where(
c => c.ChannelId == channelId)
.Include(c => c.Server).ToList();
if(channel.Count == 0)
{
Logger.Log(LogSeverity.Error,
"No channel found when attemtping to log a message.");
return;
}
if(channel.Count > 1)
{
Logger.Log(LogSeverity.Critical,
"Multiple channels found when attemtping to log a message");
return;
}
我非常感谢任何提示,并建议您:D
答案 0 :(得分:0)
对#Y Axis name
y <- list(
title = "Temperature (°C)",
titlefont = f)
和OrDefault
使用First
方法。
Single
我还删除了var channel = database.Channels
.Include(c => c.Server)
.SingleOrDefault(c => c.ChannelId == channelId);
if (channel == null)
{
Logger.Log(LogSeverity.Error, $"{ClassName}/{MethodName} - No model found");
return;
}
,因为如果存在异常,则应将其传播。如果您的关系数据模型有效,则在try/catch
上进行过滤时,Single永远不会返回大于1的值。如果您不是在Id
上进行过滤,而只希望得到一个过滤条件,则应添加一个约束(如唯一索引)以确保持久化数据不会变为无效。