Можно ли что-то сказать о происхождении этого исключения из StackTrace?
StaleStateException: Unexpected row count: 0; expected: 1
Я отображаю коллекции родительских / дочерних объектов в нескольких объектах DataGridView и выполняю различные команды добавления / удаления / сохранения. Это исключение возникает при попытке удалить дочернюю строку / сущность. Я использую DefaultCascadeAll соглашение .
После этого исключения соответствующая родительская сущность была удалена из базы данных, даже если это не требовалось. Таким образом, на следующем рисунке я запускаю программу; Store Id = 55 не существует.
Окно программы: http://img822.imageshack.us/img822/4686/ss20110201212511.png
StackTrace: http://img145.imageshack.us/img145/408/ss20110201211702.png
Отображения:
public class StoreMap : ClassMap<Store>
{
public StoreMap()
{
Id(x => x.Id);
Map(x => x.Name);
HasMany(x => x.Staff)
.Inverse()
.Cascade.All();
HasManyToMany(x => x.Products)
.Cascade.All()
.Table("StoreProduct");
}
}
public class EmployeeMap : ClassMap<Employee>
{
public EmployeeMap()
{
Id(x => x.Id);
Map(x => x.FirstName);
Map(x => x.LastName);
References(x => x.Store);
}
}
EDIT1:
private void btnDeleteEmployee_MouseDown(object sender, MouseEventArgs e)
{
var item = bsEmployees.Current; // BindingSource
Employee emp = new Employee();
if (item.GetType() == emp.GetType())
{
emp = (Employee)bsEmployees.Current;
EmployeeRepository.Delete(emp);
}
}