0

これは、私の Web アプリケーションで使用しているデータベース モデルです ここに画像の説明を入力 。現在、私がやろうとしているのは、新しい管理者を追加するか、すべての管理者を選択することですが、エラーが発生します。

An item with the same key has already been added.

すべての管理者を選択するために使用するコード:

MyContext.Administrators.Where(a => a.IsActive ==true).ToList();

新しい管理者を追加するための私のコード:

Administrators AdministratorsObj = new Administrators();
                AdministratorsObj.AdminFName = txtAdminFname.Text;
                AdministratorsObj.AdminLName = txtLastName.Text;
                AdministratorsObj.AdminLogInName = txtUserName.Text;
                AdministratorsObj.AdminPassword = txtPassword.Text;
                AdministratorsObj.AdminEmail = txtEmail.Text;
                AdministratorsObj.AdminHomePhone = txtPhone.Text;
                AdministratorsObj.AdminCellPhone = txtMobile.Text;
                AdministratorsObj.AdminType = chkIsSuperAdmin.Checked;
                AdministratorsObj.IsActive = chkIsActive.Checked;
                AdministratorsDALObj = new AdministratorsDAL();
                int AdminId = MyContext.AddAdministrators(AdministratorsObj);

AddAdministrators メソッド コード:

public int AddAdministrators(Administrators AdministratorsEnt)
{
    try
    {
        if (AdministratorsEnt == null)
            return -1;
        AdministratorsEnt.CreationDate = DateTime.Now;
        AdministratorsEnt.DeleteStatusCode = false;
        MyContext.AddToAdministrators(AdministratorsEnt);
        if (MyContext.SaveChanges() > 0)
            return AdministratorsEnt.AdminId;
        return -1;

    }
    catch (Exception)
    {

        return -1;
    }
}

管理者テーブルの列 AdminId は Identity であるため、AdminId は自動インクリメントされることに注意してください。

ご協力いただきありがとうございます。

4

1 に答える 1

0

EF 4.1 でも同じ問題が発生しました。既存のアプリケーションで。どうしたの?EF 4.1 には .net Framework 4.0 が必要です。Windows Update により .net Framework 4.0 が 4.5 に置き換えられ、同じエラーが発生しました。解決策は、.net 4.5 をアンインストールして .net 4.0 をインストールすることでした。

于 2014-10-29T10:35:37.817 に答える