1

SQL ステートメントを変更して、ユーザー名の作成方法の形式を変更しようとしました。Web ページでテスト用のダミー データを作成しているので、複数のユーザーが必要です。現在のユーザーの名前を変更したいのですが、名前を次のstudent{integer}@email.comように変更したかったのですstudent{integer}

エラー

SqlException : 一意のインデックス 'UX_Users' を持つオブジェクト 'dbo.Users' に重複するキー行を挿入できません。重複キーの値は (1, student0@email.com) です。ステートメントは終了されました。

SQL ステートメント

string basestring = "student{0}@email.com";
string userName = "Student{0}";

using (Database dc = new Database())
{
    dc.Connection.Open();
    for (int i = 0; i < 400; i++)
    {
        string email = string.Format(basestring,i);
        string sName = string.Format(userName, i);
        User u = new User(){ Name = sName, UserName = email, InstitutionUniqueID = email, Email = email, CreationDate=DateTime.Now, InstitutionsID=1, GUID= Guid.NewGuid() };
        dc.Users.InsertOnSubmit(u); 
    }
    dc.SubmitChanges(System.Data.Linq.ConflictMode.FailOnFirstConflict);
}

ここでエラーが発生します:

dc.SubmitChanges(System.Data.Linq.ConflictMode.FailOnFirstConflict);

これをテストするためにlinqpadを使用しています。

4

1 に答える 1

1

コードを次のように変更します。

string basestring = "student{0}@email.com";
string userName = "Student{0}";

using (Database dc = new Database())
{

    for (int i = 0; i < 400; i++)
    {
         dc.Connection.Open();
        string email = string.Format(basestring,i);
        string sName = string.Format(userName, i);
        User u = new User(){ Name = sName, UserName = email, InstitutionUniqueID = email, Email = email, CreationDate=DateTime.Now, InstitutionsID=1, GUID= Guid.NewGuid() };
        dc.Users.InsertOnSubmit(u); 
        dc.SubmitChanges(System.Data.Linq.ConflictMode.FailOnFirstConflict);
        dc.Connection.Close();
    }

}

送信の変更をループ内に配置するだけです

よろしくお願いします

于 2013-04-05T03:20:32.597 に答える