【发布时间】:2012-11-15 13:42:56
【问题描述】:
我有一个表table1,主键是Pkey。它是一个标识列。我有另一个表table2,它没有主键和标识列。
我想将table1 的Pkey 的值插入到table2 的id 列中。
obj2.id = obj1.Pkey;
我得到一个例外:
无法将值 NULL 插入到列 'id'、表 'table2' 中;列不允许空值。插入失败。
感谢提示。系统是否要将标识属性分配给 id?
更新:
原来table2是空的,我从实体框架创建了新记录。
BDetail obj2= iContext.DetailsRecords.Create();
obj2.id = obj1.Pkey;
iContext.BDetail.Add(obj2);
iContext.SaveChanges(); // exception here
【问题讨论】:
-
您的应用程序似乎尝试插入 NULL 值。有这种可能吗?
-
能分享一下table1和table2的表结构吗
-
你确定 obj1.Pkey 不为空。它是什么类型,我猜是 int 还是别的?
-
如果 PKey 是 IDENTITY 列,它必须是 NOT NULL!也许Update语句本身有一个问题,没有返回值试图将NULL插入table2
-
你能发布你尝试过的完整查询吗
标签: c# sql-server sql-server-2008 entity-framework