【发布时间】:2015-07-09 18:45:23
【问题描述】:
我正在使用 EF5 和 DB2 9.1 for z/OS 和 IBM 数据提供程序。除了这一部分之外,我的程序中的所有内容都运行良好。我无法将新对象插入数据库。我得到错误:
{"错误 [23502] [IBM][DB2] SQL0407N 将 NULL 值分配给 不允许使用 NOT NULL 列 \"EMPL_ID\"。"}
我一次又一次地验证该值不为空......它是一个有效的整数。怎么回事?
if (String.IsNullOrEmpty(emplID))
return null;
try
{
int _emplID = Convert.ToInt32(emplID.Trim());
using (var ctx = new Data.TIMSContext())
{
var user = (from u in ctx.Query<Data.Entities.ASNUser>()
where u.EmployeeID == _emplID
select u).FirstOrDefault();
if (user == null)
{
//add user to database
user = new Data.Entities.ASNUser()
{
EmployeeID = _emplID,
FirstName = firstName.Trim(),
LastName = lastName.Trim()
};
ctx.Set<Data.Entities.ASNUser>().Add(user);
ctx.SaveChanges();
}
return new Models.UserInfo()
{
EmployeeID = user.EmployeeID,
DisplayName = String.Format("{0}, {1}", user.LastName, user.FirstName)
};
}
}
catch (Exception e)
{
throw;
}
【问题讨论】:
-
顺便说一下,db中的列被定义为INTEGER类型,主键。
-
另外,当我创建一个命令并执行它并插入完全相同的值时,它工作得很好。
标签: c# wpf entity-framework db2