无法在DB2 w / EF5中插入简单行

时间:2015-07-09 18:45:23

标签: c# wpf entity-framework db2

我使用EF5和DB2 9.1 for z / OS和IBM数据提供程序。除了这一部分,我程序中的所有内容都能正常工作。我无法在数据库中插入新对象。我收到错误:

  

{" ERROR [23502] [IBM] [DB2] SQL0407N将NULL值分配给a   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;
        }

1 个答案:

答案 0 :(得分:0)

问题在于我将用户设置为新对象,然后将其添加到DBSet。我想这创建了两个不同的用户对象副本,一个是null,一个是填写的。所以我注释掉了添加行,它运行良好。