如何使身份插入与我的模型一起使用

时间:2019-04-12 19:41:27

标签: c# sql asp.net .net model-view-controller

我正在尝试允许用户创建对象“房间”。他们将能够向会议室添加项目,以及为其帐户删除和创建会议室。

我这样设置桌子

CREATE TABLE [dbo].[Rooms](

[Value] [money] NULL,

[Name] [nvarchar](50) NOT NULL,

[RoomID] [int] PRIMARY KEY IDENTITY(1,1) NOT NULL,

[User] [nvarchar](128) NOT NULL)

还有我的插入代码,

[HttpPost]
 public async Task<ActionResult> Create([Bind(Include = "Name, User, 
 RoomID")] Room room)

    {

        if (ModelState.IsValid)

        {

            using (var transaction = db.Database.BeginTransaction())

            {

           db.Database.ExecuteSqlCommand("SET IDENTITY_INSERT Rooms ON");

               room.User = User.Identity.GetUserId();  

               db.Rooms.Add(room);

               await db.SaveChangesAsync();

           db.Database.ExecuteSqlCommand("SET IDENTITY_INSERT Rooms OFF");

                transaction.Commit();

            }

            return RedirectToAction("Index");

        }

        return View(room);
    }

每当我尝试向数据库中添加对象空间时,我都不会定义RoomID。我希望数据库会自动增加ID,但是会引发错误。...

违反主键约束'PK__Rooms__328639191EFADF47'。无法在对象“ dbo.Rooms”中插入重复键。重复键值为(0)。 该声明已终止。

每次将RoomID的值设置为0。

0 个答案:

没有答案