实体框架中的一对一关系插入

豺狼

我有 2 个表,用户和员工

CREATE TABLE [dbo].[Users](
 [UserID] [int] IDENTITY NOT NULL,
 [Username] [nvarchar](8) NOT NULL,
 [Activo] [bit] NOT NULL,
 [UltimoAcesso] [datetime] NULL,

 PRIMARY KEY (UserID)
)

CREATE TABLE [dbo].[Employees](
    [ColaboradorID] [int] IDENTITY(1,1) NOT NULL,
    [Nome] [nvarchar](100) NOT NULL,
    [Email] [nvarchar](100) NULL,
    [UserID] [int] NULL

    PRIMARY KEY(ColaboradorID),
    UNIQUE (UserID)
)

ALTER TABLE [dbo].[Employees]  WITH CHECK ADD  CONSTRAINT [FK_Employees_UtilizadorID] FOREIGN KEY([UserID])
REFERENCES [dbo].[Users] ([UserID])
ON UPDATE CASCADE
ON DELETE CASCADE

我首先使用实体​​框架数据库。

我正在尝试插入一个新用户

 public void fvAddUser_InsertItem()
        {
            var item = new InventarioCiclico.Users();
            using (InventarioCiclicoContext db = new InventarioCiclicoContext())
            {
                Employee c = new Employee ();

            c.Nome = (fvAddUser.FindControl("txtNome") as TextBox).Text;
            c.Email = (fvAddUser.FindControl("txtEmail") as TextBox).Text;
            item.Employee.Add(c);

            var employee = db.Set<Employee>();

            TryUpdateModel(item);

            if (ModelState.IsValid)
            {
                if (db.Users.Any(u => u.Username == item.Username))
                {
                    // Handle exception
                }
                else
                {
                    db.Users.Add(item);
                     db.SaveChanges();
                     var userID = item.UserID;
                    c.UserID = userID;
                    employee.Add(c);
                    db.SaveChanges();
                }                    
            }
        }
    }

然而,它不断给我违反独特价值的例外?在开始使用实体框架之前,我会先在 Users 表上插入,然后获取 scope_identity 并在 Employee 表上插入,我正在尝试使用 EF6 执行此操作,但我不知道我能对此做些什么。

工作

UserId在数据库中添加了两个相同的员工,并且由于UserId是员工表中的唯一字段,因此您会收到违反唯一值的异常。
item.Employee.Add(c);您将员工添加到用户的行中,因此,将用户添加到数据库时,员工将添加两个。所以你不需要最后三行:

 c.UserID = userID;
 employee.Add(c);
 db.SaveChanges();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

实体框架代码优先一对一关系

来自分类Dev

实现实体框架一对一关系

来自分类Dev

一对一关系实体框架

来自分类Dev

如何删除一对一关系中的实体?

来自分类Dev

插入一对一关系

来自分类Dev

一对一关系插入

来自分类Dev

在Swift中以一对一关系插入NSManagedObject

来自分类Dev

实体框架核心一对一关系在SQL Server中生成一对多

来自分类Dev

实体框架代码首先在复杂实体之间建立一对一关系

来自分类Dev

实体框架6:具有继承关系的一对一关系

来自分类Dev

一对一实体框架关系

来自分类Dev

实体框架中的一对一或零关系

来自分类Dev

如何在实体框架中定义表达式选择嵌套的一对一关系

来自分类Dev

实体框架与ASP.NET Boilerplate的一对一关系

来自分类Dev

实体框架两端可选的一对一关系

来自分类Dev

实体框架首先使用代码一对一关系。怎么样?

来自分类Dev

C#实体框架:可选的一对一关系

来自分类Dev

实体框架与ASP.NET Boilerplate的一对一关系

来自分类Dev

实体框架:一对一关系,能够双向导航

来自分类Dev

简化实体框架 6 一对一关系的语法

来自分类Dev

实体框架以一对一关系添加新记录,而对象具有 ID

来自分类Dev

无法在实体之间建立一对一关系

来自分类Dev

Django rest框架一对一关系

来自分类Dev

以一对一关系插入数据-域

来自分类Dev

一对零或一对一关系的实体框架(EF)代码优先级联删除

来自分类Dev

实体框架-在种子方法中将现有实体添加到一对一关系

来自分类Dev

实体框架-在种子方法中将现有实体添加到一对一关系

来自分类Dev

插入到一对一关系中的两个表中

来自分类Dev

在Laravel中通过一对一关系插入数据

Related 相关文章

热门标签

归档