不能在DB2 w/ EF5上插入行

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

我有一个使用EF5在DB2 9.1 (z/OS)上运行的WPF应用程序。除了在主键为INTEGER(10)字段的地方插入外,一切都很好。

实体的映射属性为int类型。

private Models.UserInfo GetUserInfo(String emplID, String firstName, String lastName)
    {
        if (String.IsNullOrEmpty(emplID))
            return null;
        int _emplID = Convert.ToInt32(emplID.Trim());
        try
        {
            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上插入行

这可能是您的edmx文件/EF模型的问题。

如果EmployeeID字段在模型中被定义为一个自动递增的id,那么EF将忽略您设置的值,并且null将被发送到数据库。但是数据库没有自动增量字段,所以它尝试插入null