Я использую Nhibernate 2.1.2.4000 GA с Nhibernate.Linq 1.0 и последней версией FluentNhibernate, загруженной с мастера на github.
Я делаю несколько тестов, и всякий раз, когда я пытаюсь удалить объект, полученный с помощью запроса linq, я получаю эту ошибку:
Не сохраняется для: NHibernate.Linq.Query`1 [[Employees.Core.Entities.Employee, Employees.Core, Version = 1.0.0.0, Culture = нейтральный, PublicKeyToken = null]]
Все остальные операции (вставка, обновление и выбор) выглядят нормально;
Мой класс сущности:
public class Employee
{
public Employee()
{
}
public virtual Int32 Id { get; private set; }
public virtual String Name { get; set; }
public virtual String SayHello()
{
return String.Format("'Hello World!', said {0}.", Name);
}
}
Класс отображения:
public class EmployeeMap : ClassMap<Employee>
{
public EmployeeMap()
{
Id(x => x.Id);
Map(x => x.Name)
.Not.Nullable()
.Length(50);
}
}
Конфигурация:
Assembly mappingsAssemly = Assembly.GetExecutingAssembly();
return Fluently.Configure()
.Database( MsSqlConfiguration.MsSql2008
.ConnectionString(connectionString)
.ProxyFactoryFactory(typeof(ProxyFactoryFactory))
.ShowSql())
.Mappings( m => m.FluentMappings.AddFromAssembly(mappingsAssemly))
.BuildSessionFactory();
И код, который не работает:
public void RemoveAll()
{
var q = from employee in _session.Linq<Employee>()
select employee;
foreach (var employee in q.ToList())
{
_session.Delete(q);
}
}
Есть предположения?