NullReferenceException beim Aufrufen von InsertOnSubmit in Linq to Sql

Ich versuche, mit LINQ to SQL ein neues Objekt in meine Datenbank einzufügen, erhalte jedoch eine NullReferenceException, wenn ich InsertOnSubmit () im folgenden Codeausschnitt aufrufe. Ich übergebe eine abgeleitete Klasse mit dem Namen FileUploadAudit, und alle Eigenschaften des Objekts werden festgelegt.

public void Save(Audit audit)
{
    try
    {                
        using (ULNDataClassesDataContext dataContext = this.Connection.GetContext())
        {
            if (audit.AuditID > 0)
            {
                throw new RepositoryException(RepositoryExceptionCode.EntityAlreadyExists, string.Format("An audit entry with ID {0} already exists and cannot be updated.", audit.AuditID));
            }

            dataContext.Audits.InsertOnSubmit(audit);
            dataContext.SubmitChanges();
        }
    }
    catch (Exception ex)
    {
        if (ObjectFactory.GetInstance<IExceptionHandler>().HandleException(ex))
        {
            throw;
        }
    }           
}

Hier ist der Stack-Trace:

at System.Data.Linq.Table`1.InsertOnSubmit(TEntity entity)
at XXXX.XXXX.Repository.AuditRepository.Save(Audit audit) 
C:\XXXX\AuditRepository.cs:line 25"

Ich habe der Audit-Klasse Folgendes hinzugefügt:

public partial class Audit
{ 
    public Audit(string message, ULNComponent component) : this()
    {
        this.Message = message;
        this.DateTimeRecorded = DateTime.Now;
        this.SetComponent(component);
        this.ServerName = Environment.MachineName;
    }           
    public bool IsError { get; set; }     
    public void SetComponent(ULNComponent component)
    {
        this.Component = Enum.GetName(typeof(ULNComponent), component);
    }
}

Und das abgeleitete FileUploadAudit sieht so aus:

public class FileUploadAudit : Audit
{ 
    public FileUploadAudit(string message, ULNComponent component, Guid fileGuid, string originalFilename, string physicalFilename, HttpPostedFileBase postedFile)
        : base(message, component)
    {
        this.FileGuid = fileGuid;
        this.OriginalFilename = originalFilename;
        this.PhysicalFileName = physicalFilename;
        this.PostedFile = postedFile;
        this.ValidationErrors = new List<string>();
    }
    public Guid FileGuid { get; set; }
    public string OriginalFilename { get; set; }
    public string PhysicalFileName { get; set; }
    public HttpPostedFileBase PostedFile { get; set; }
    public IList<string> ValidationErrors { get; set; }
}

Irgendwelche Ideen, was das Problem ist? Die nächste Frage, die ich zu meiner finden konnte, istHier Aber meine partielle Audit-Klasse ruft den parameterlosen Konstruktor im generierten Code auf, und ich bekomme immer noch das Problem.

AKTUALISIEREN:

Dieses Problem tritt nur auf, wenn ich die abgeleitete FileUploadAudit-Klasse übergebe. Die Audit-Klasse funktioniert einwandfrei. Die Audit-Klasse wird als Linq-to-SQL-Klasse generiert, und die abgeleitete Klasse enthält keine Eigenschaften, die Datenbankfeldern zugeordnet sind.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage