2016-04-12 10 views
0

null başvuru hatası ancakdurum günlüğü atma ben varlık framework kullanarak bir Sqlserver 2012 veritabanına istisnalar giriş çalışıyorum

System.NullReferenceException söyleyerek bir hata alıyorum Kullanıcı kodu
HResult = -2147467261 tarafından işlenmemiş Mesaj = Nesne başvurusu bir nesnenin bir örneğine ayarlanmamış.

ben de kod yukarıda bana System.Data.Entity.Validation" context.SaveChanges bir hata verir

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(); 

denedi

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(); 
    } 
} 

altına kodumu yapıştırdınız. DbEntityValidationException kullanıcı kodu HResult = -2146232032 tarafından işlenemedi İleti = Bir veya daha fazla varlık için doğrulama başarısız oldu.Daha fazla ayrıntı için 'EntityValidationErrors' özelliğine bakın.Kaynak = EntityFramework"

cevap

0

Bu hat: Bir sonraki çizgi NullReferenceException

+0

Öneriniz sayesinde yardım vermek neden olacaktır tbl_Audit_SystemLog hiçbir satır varsa

var exceptionEntity = context.tbl_Audit_SystemLog.FirstOrDefault(); 

öyle mi, boş dönecektir veritabanına kaydedebilmem için istisnanın gerçekleştiği yöntemin adını nasıl alabileceğimi biliyorum – Zidane

İlgili konular