2011-07-22 26 views
0

MVC3を習得しようとしています。私は今、dbにユーザーを追加しようとしています。Entity Framework dbエラーにユーザーを追加

db.U1_Users.Add(u1_Users); 
db.SaveChanges(); 

保存に失敗するとエラーが発生します。 これはadd関数の問題です。

私はエラー

InnerException = {"Cannot insert the value NULL into column 'U1_UserID', table 
'Admin.dbo.U1_User'; column does not allow nulls. INSERT fails.\r\nThe statement has been terminated."} 

EDIT

U1_UserIDが主キーで取得します。

これはモデルです:

public class U1_User 
    { 

     public int U1_UserID { get; set; } 
     public string U1_UserName {get;set;} 

    } 
+0

モデルの定義が問題を持っているので、これが発生し、あなたのモデルクラスのソースコードを投稿してください。 – dknaack

答えて

0

..

[Required, Key, DatabaseGenerated(DatabaseGeneratedOption.None)] 
0

は、私にはかなりまっすぐ進むが見えます。値が設定されていることを確認する必要があります。これをオートナンバーにしたい場合は、DBに設定する必要があります。

SQL SERVERでは、テーブルをデザインモードで開くことができます。テーブルのプロパティに移動し、列をID列として選択します。また、フィールドを主キーにする必要があります。

+0

Entity Framework Code Firstをやっているなら、これは良い考えではありません。 – dknaack

0

これは、idプロパティに間違った名前を付けたために発生します。

命名規則は次のとおりです。

 public int Id { get; set; } 

または

 public int YourModelNameId { get; set; } 

既存のデータベースにマップする場合はScottGu'sブログポストでModelBuilderのを見て: http://weblogs.asp.net/scottgu/archive/2010/07/23/entity-framework-4-code-first-custom-database-schema-mapping.aspx

次は動作します:

public class U1_Users 
    { 
     [Key] 
     public int U1_UsersID { get; set; } 
     public string U1_UserName { get; set; } 

    } 
必要な
+0

U1_UserIDはDB内のフィールド名です – Beginner

+0

U1_Usersはテーブル名です – Beginner

+0

ScottGu'sブログをご覧ください。それはあなたが必要とするものです。私は私の答えでリンクを持っています – dknaack

関連する問題