2

これは単純な構成エラーであると確信していますが、経験不足のため修正できません。EMPLOYEE基本的に、エンティティ フレームワークを使用してテーブルに追加したいと考えています。

これが私の方法です:

 public void createEmployee(CreateEmployeeModel model)
    {
        EMPLOYEE emp = new EMPLOYEE() {
            emp_name = model.Name,
            emp_email = model.Email,
            emp_cell_phone = model.CellPhone,
            emp_adr = model.Address
        };

        _db.AddToEMPLOYEES(emp);
        _db.SaveChanges();
    }

呼び出しで次のエラーが表示され_db.SaveChanges();ます: 一意のインデックス 'R18_SDE_ROWID_UK' を持つオブジェクト 'dbo.EMPLOYEES' に重複するキー行を挿入できません。重複キーの値は (0) です。

emp_idEMPLOYEE エンティティの列プロパティは次のとおりです。

StoreGeneratedPattern : Identity
Concurrency Mode : None
Default Value :  (None)
Entity Key : True
Name: emp_id
Nullable: False
Type : Int32

SQL サーバーの EMPLOYEES テーブルのemp_id列プロパティは次のとおりです。

ここに画像の説明を入力

テーブルにすでに 4 人の従業員がいるのに、主キーが常に 0 として生成される理由がわかりません。(0,1,2,3)。

4

2 に答える 2

2

モデルのプロパティを手動で変更する必要があった場合、データベース自体で列を Identity 列に設定していない可能性があります。

データベースを ID 列に設定した場合は、エンティティを削除して再度追加します。

于 2012-04-19T20:18:23.817 に答える
0

_db.EMPLOYEES.CreateObject()新しいインスタンスをEMPLOYEE適切にセットアップするために、何かをする必要があると思います。

var emp = _db.EMPLOYEES.CreateObject();
//set values

_db.EMPLOYEES.AddObject(emp);
_db.SaveChanges();
于 2012-04-19T20:05:58.670 に答える