C# 无法从控制器将随机生成的int写入DB

C# 无法从控制器将随机生成的int写入DB,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,我已经生成了一个介于100000和9999999之间的随机整数,并希望动态地将其写入我的数据库(下面的代码)。我正在加载一个现有记录(客户端),并希望将randomNumber写入该现有记录的字段标记 int生成的结果很好,因为我可以存储在ViewBag中并在我的视图中渲染,但由于未知原因无法写入DB。生成期间没有错误,并且我的数据库和模型中存在标记 我也尝试过使用Token=randomNumber.ToString()没有成功 控制器: public ActionResult SendFor

我已经生成了一个介于100000和9999999之间的随机整数,并希望动态地将其写入我的数据库(下面的代码)。我正在加载一个现有记录(客户端),并希望将
randomNumber
写入该现有记录的字段标记

int
生成的结果很好,因为我可以存储在
ViewBag
中并在我的视图中渲染,但由于未知原因无法写入DB。生成期间没有错误,并且我的数据库和模型中存在
标记

我也尝试过使用
Token=randomNumber.ToString()没有成功

控制器:

public ActionResult SendForm(int ? id)
{            
    if (id == null)
    {
        return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
    }

    Client clients = db.Clients.Find(id);
    if (clients == null)
    {
        return HttpNotFound();
    }
    Random rndNumber = new Random();
    int randomNumber = rndNumber.Next(100000,999999);
    ViewBag.rndNumber = randomNumber.ToString();
    var client = new Client()
    {
       Token = ViewBag.rndNumber,
    };
    db.SaveChanges();
    return View(clients);
}

新创建的对象必须添加到
DbSet
中,以便
EF
检测新对象是否已创建

var client = new Client()
{
    Token = ViewBag.rndNumber,
};
db.Clients.Add(client);
db.SaveChanges();
如果要更新现有客户端

clients.Token = randomNumber
db.SaveChanges();

注意
客户机
实际上是单个实体,因为
查找
单个或默认
相同,所以必须将新创建的对象添加到
DbSet
中,以便
EF
检测新对象是否已创建

var client = new Client()
{
    Token = ViewBag.rndNumber,
};
db.Clients.Add(client);
db.SaveChanges();
如果要更新现有客户端

clients.Token = randomNumber
db.SaveChanges();

注意
客户机
实际上是单个实体,因为
Find
SingleOrDefault
相同,所以只需使用误导性名称

谢谢。我应该澄清一下-我正在加载一个现有记录,并希望同时更新“Token”字段。我会修正这个问题。太好了,现在工作得很好。再次感谢。显然是想得太多了…谢谢。我应该澄清一下-我正在加载一个现有记录,并希望同时更新“Token”字段。我会修正这个问题。太好了,现在工作得很好。再次感谢。显然是想得太多了。。。