Ich bin manuell eine Entity Framework-Code erste Tabelle an eine Datagridview binden. Wenn ich den AutoSizeMode auf AllCells einstelle und eine Instanz zur Tabelle hinzufüge, erhalte ich während Add eine NullReferenceException.NullReferenceException beim Festlegen von AutoSizeMode auf AllCells in DataGridView
Der Code läuft wie folgt aus:
dbContext.Persons.Load();
myDataGridView.DataSource = dbContext.Persons.Local.ToBindingList();
myDataGridView.Columns[ "Description" ].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
Person p = new Person();
p.Name = "Tester Alfred";
p.Description = "Description"; //no more properties, only those two (Id Property is annotated as [Key]
dbContext.Persons.Add(p); // this throws a NullReferenceException
Hier ist der relevante Teil aus dem Stack-Trace:
System.Data.Entity.Core.Objects.ObjectContext.AddSingleObject(EntitySet entitySet, IEntityWrapper wrappedEntity, String argumentName)
bei System.Data.Entity.Core.Objects.ObjectContext.AddObject(String entitySetName, Object entity)
bei System.Data.Entity.Internal.Linq.InternalSet`1.<>c__DisplayClassd.<Add>b__c()
bei System.Data.Entity.Internal.Linq.InternalSet`1.ActOnSet(Action action, EntityState newState, Object entity, String methodName)
bei System.Data.Entity.Internal.Linq.InternalSet`1.Add(Object entity)
bei System.Data.Entity.DbSet`1.Add(TEntity entity)
Die Tabelle Personen ist ansonsten leer. Wenn ich die AutoSize - Anweisung entferne, ist alles in Ordnung.
Plattform: WinForms in .Net 4.5.1 mit Studio 2013; Win8 Pro Rennen, EF 6.1.3
Edit: Entfernte Tippfehler, die ein zweites gridview eingeführt
Ich freue mich, dass dies kein Duplikat des Üblichen ist. –
Was passiert, wenn Sie das Hinzufügen der neuen Person vor die Datenbindung verschieben? –
myDataGridView.Columns ["Description"] Sind Sie sicher, dass diese Spalte existiert ?? – Jacek