Я пытаюсь войти исключения в 2012 базы данных SQLServer с использованием рамки сущности, однако, когда мой код попадет в стадию сохранения в базу данных я получаю сообщение об ошибке говорящегоИсключение Logging метания пустой ссылка ошибка
System.NullReferenceException был необработанным кодом пользователя
HResult = -2147467261 Message = Ссылка на объект не установлена в экземпляр объекта.
Я вставил свой код ниже
public IEnumerable<SensorMetricItem> GetDeviceSensorDashboardDetails(int AssetInstanceId)
{
try
{
using (var context = new EnigmaEntities())
{
var dashboardSensorEntities = context.usp_Read_DeviceSensorDashboardDetails_List(AssetInstanceId).ToList();
return dashboardSensorEntities.Select(rd => new SensorMetricItem(rd.sensorId, rd.AssetInstanceID, rd.exception, rd.sensorDesc, rd.Total ?? 0, rd.Abbreviation, rd.sensorGuid)).ToList();
}
}
catch (Exception ex)
{
SendExcepToDB(ex);
return null;
}
}
public static void SendExcepToDB(Exception exdb)
{
using (var context = new EnigmaEntities())
{
var exceptionEntity = context.tbl_Audit_SystemLog.FirstOrDefault();
exceptionEntity.ErrorMessage = exdb.Message.ToString();
context.SaveChanges();
}
}
Я также попытался
public void SendExcepToDB(Exception exdb)
{
using (var context = new EnigmaEntities())
{
var exceptionEntity = new tbl_Audit_SystemLog
{
ErrorMessage = exdb.Message,
ServiceID = 0,
FunctionName = "",
Version = "",
StackTrace = "" ,
Severity = "" ,
URL = "" ,
UserID = 0,
CreatedAt = DateTime.Now
};
context.tbl_Audit_SystemLog.Add(exceptionEntity);
context.SaveChanges();
код выше, дает мне ошибку на context.SaveChanges «System.Data.Entity.Validation. DbEntityValidationException не был обработан кодом пользователя HResult = -2146232032 Сообщение = Не удалось выполнить проверку для одного или нескольких объектов. Подробнее см. Свойство EntityValidationErrors.Источник = EntityFramework»
ваше предложение помогло спасибо, да знать, как я могу получить имя метода, в котором происходит исключение, чтобы я мог сохранить базу данных – Zidane