无法在DB2 w / EF5上插入行

时间:2015-07-10 18:44:53

标签: c# wpf entity-framework db2

我有一个使用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;
        }
    }

1 个答案:

答案 0 :(得分:0)

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

如果在模型中将EmployeeID字段定义为自动增量ID,则EF将忽略您设置的值,并将null发送到数据库。但是数据库没有自动增量字段,因此它尝试插入null。