不能在DB2 w/ EF5中插入简单的行

本文关键字:插入 简单 EF5 DB2 不能 | 更新日期: 2023-09-27 18:02:09

我使用的是用于z/OS和IBM数据提供程序的EF5和DB2 9.1。我的程序中除了这一部分之外一切都很好。我不能在数据库中插入新对象。我得到错误:

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

不能在DB2 w/ EF5中插入简单的行

问题是我将用户设置为一个新对象,然后将其添加到DBSet中。我猜这创建了用户对象的两个不同副本,一个为空,一个为填。所以我注释掉了添加行,它工作得很好