将模型与数据库表相关联以使用EF执行INSERT

时间:2012-11-30 06:33:38

标签: c# asp.net asp.net-mvc entity-framework asp.net-mvc-4

这是我自己创建的第一个表,我试图插入数据。

问题:在我的控制器中,我不确定如何将模型与实际数据库表链接以执行INSERT

同样在第uc.userId = userId;行中我收到以下错误:

  

无效的初始化成员声明

我为这个表创建了一个模型:

public class RegisterModel
{
    public bool isCertified { get; set; }
    public int certType { get; set; }
    public string identifier { get; set; }
}

查看:

<tr>
   <td style="font-size:10px;">Habilitar Login com Cert. Digital:</td>
   <td>@Html.CheckBoxFor(m => m.isCertified)</td>
</tr>                                      
<div id="certDigitalBlock">
<tr>
    <td class="smallField">Tipo do Certificado:</td>
    <td>@Html.DropDownListFor(m => m.certType, new SelectList(ViewBag.certType, "id","type"))</td>
</tr>
<tr>
    <td>Identificação:</td>
    <td>@Html.TextBoxFor(m => m.identifier, new { @class = "validate[required]" })      @Html.ValidationMessage("awnserVal", "*")</td>
</tr> 
</table>

控制器

using (tgpwebgedEntities context = new tgpwebgedEntities())
{
   var userID = from u in context.aspnet_Users where u.UserName == model.UserName select u.UserId;

   if (checkIsCertified == true)
   {
      UsersCertified uc = new UsersCertified {
                            uc.userId = userId;
                            uc.certTypeId = model.certType;
                            uc.keyNumber = model.identifier;
                        }

      context.SaveChanges()
   }
}

由于

2 个答案:

答案 0 :(得分:1)

UsersCertified uc = new UsersCertified {
                            uc.userId = userId;
                            uc.certTypeId = model.certType;
                            uc.keyNumber = model.identifier;
                        }

不应写在括号下?如果你使用的是构造函数。

UsersCertified uc = new UsersCertified (
                            uc.userId = userId;
                            uc.certTypeId = model.certType;
                            uc.keyNumber = model.identifier;
                        )

添加此代码:

context.UsersCertified .InsertOnSubmit(uc);
                context.SubmitChanges();

答案 1 :(得分:1)

我认为你错过了

context.Set<UsersCertified>().Add(uc);

context.SaveChanges();

顺便说一下,您可能想要阅读关于Repository模式的答案。它可以帮助您了解如何使用数据库并按级别拆分应用程序。