Device
列が1つしかないテーブルがあり、これUID nvarchar(128)
が私のエンティティです:
[Table( Name="Device" )]
public class Device
{
[Key]
public string UID { get; set; }
}
エンティティを挿入して変更をデータベースにコミットしようとすると、すべて問題ありません。しかし、データベースには新しい行が追加されていません。同じ UID でこの操作を繰り返そうとすると、エラーが発生します
PRIMARY KEY 制約 'PK_dbo.Devices' に違反しています。オブジェクト 'dbo.Devices' に重複するキーを挿入できません。重複するキーの値は...
どうしたの?
編集:
これが私のコンテキストです:
public class DeviceContext : BaseDbContext, IDbContext
{
public DbSet<Entity.Device> Device { get; set; }
public new IDbSet<T> Set<T>() where T : class
{
return base.Set<T>();
}
public int SaveChanges()
{
return base.SaveChanges();
}
public void Dispose()
{
base.Dispose();
}
}
メソッドに失敗しSaveChanges()
ます。BaseDbContext
「接続文字列レイヤー」のみです。
DeviceContext context = new DeviceContext();
context.Device.Add(new Device() { UID = id });
context.SaveChanges();