2012-11-30 49 views
0

這是我自己創建的第一個表,我試圖插入數據。將模型與數據庫表關聯以使用EF執行INSERT

問題:在我的控制器中,我不確定如何將模型與實際數據庫表相關聯以執行INSERT

在該行

而且uc.userId = userId;我收到以下錯誤:

Invalid initializer member declarato

我創建了這個表的模型:

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() 
    } 
} 

感謝

+0

問題解決了: http://stackoverflow.com/questions/13641371/entity-has-some-invalid-arguments-when-trying-to-perform-an-insert-with-ef 謝謝大家! –

+0

問題解決了: http://stackoverflow.com/questions/13641371/entity-has-some-invalid-arguments-when-trying-to-perform-an-insert-with-ef 謝謝你們! –

回答

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(); 
+0

好的,現在我固定了控制器,但仍然有第二個疑問。 context.SaveChanges();不會創造新紀錄。我如何執行插入? –

+0

我不記得確切的語法,但它是像context.addobject(「」); – CodeSpread

+0

請在下面的帖子中看看我的評論。感謝您的awnser .. mixel告訴我有關該方法的信息,但仍然存在我不理解的問題 –

1

我認爲你缺少

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

context.SaveChanges(); 

到時候你可能需要閱讀我的回答對Repository方式模式。它可以幫助您瞭解如何使用數據庫並按級別分割您的應用程序。

+0

我收到以下錯誤:'System.Data.Entity.DbContext.Set ()'是一種方法,在給定的上下文。 –

+0

對不起,編輯。設置爲()是一種方法,我加了括號。 – mixel

+0

感謝Mixel ... uc是一個正在採取3參數(Guid,int,字符串)的類...我的表稱爲sistema_UsersCertified,所以我做了以下操作:UsersCertified uc = new UsersCertified(uID,model.certType,model .identifier); context.Set ()添加(UC)。編譯器抱怨說最好的重載方法有一些無效的參數......如果它們是同一類型的呢? –

相關問題