我有一个Device
只有一列的表UID nvarchar(128)
,这是我的实体:
[Table( Name="Device" )]
public class Device
{
[Key]
public string UID { get; set; }
}
当我尝试插入实体并向数据库提交更改时一切正常。但是在数据库中没有添加新行。如果我尝试使用相同的 UID 重复此操作 - 我会出错
违反主键约束“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();