У меня есть таблица Device
только с одним столбцом 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();
DeviceContext
- код, где вы добавляете больше устройств - person Jens Kloster   schedule 15.03.2013id
еще не существует в базе данных? - person Jens Kloster   schedule 15.03.2013