当在DataGridView中将AutoSizeMode设置为AllCells时,c# – NullReferenceException

我手动绑定实体框架代码的第一个表到datagridview。当我将AutoSizeMode设置为AllCells并向表中添加一个实例时,我在添加期间得到一个NullReferenceException。

代码运行如下:

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

这里是堆栈跟踪的相关部分:

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)

Persons表否则为空。当我删除AutoSize – 指令一切都很好。

Plattform:WInForms in .Net 4.5.1 using Studio 2013;运行Win8 Pro,EF 6.1.3

编辑:删除引入第二个gridview的拼写错误

AutoSize所有单元格意味着数据网格视图需要评估每个列的结果。 EF需要提供每行的结果。看来您可能绑定到外键列。如果行中的值不匹配外部表中的行,那么datagridview将抛出此错误。 EF有一个问题,表中的值必须匹配外表中的值区分敏感…不管SQL是否区分大小写。 EF使用CLR执行实体匹配…这是区分大小写的
http://stackoverflow.com/questions/29562631/nullreferenceexception-when-setting-autosizemode-to-allcells-in-datagridview

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:当在DataGridView中将AutoSizeMode设置为AllCells时,c# – NullReferenceException