Проблемы с методами удаления и вставки ObjectDataSource объекта GridView в ASP.NET

Я хочу использовать ObjectDataSource с GridView в ASP.NET. Отображение данных в GridView работает. Теперь я добавляю CommandField в GridView, чтобы также включить редактирование данных. Метод обновления работает нормально, но у меня есть проблемы с удалением и вставкой:

Когда я щелкаю ссылку Удалить в GridView, вызывается настроенный DeleteMethod, но с неправильнымtestSystemEndpoint параметр. Вместо бизнес-объекта, который должен быть удален, это пустой экземпляр со всеми полями, равными 'null'. Поэтому настроенный DeleteMethod не может удалить запись.Когда я нажимаю ссылку Вставить в GridView, ничего не происходит. Настроенный InsertMethod не вызывается.

Мой ObjectDataSource выглядит так:

<asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
        DataObjectTypeName="[...].TSEndpoint" 
        DeleteMethod="Remove" InsertMethod="Add" 
        OldValuesParameterFormatString="original_{0}" SelectMethod="GetTSEndpoints" 
        TypeName="[...].TSRepository" 
        UpdateMethod="Update"></asp:ObjectDataSource>

Мой BusinessObject Manager - это TSRepository.cs:

[DataObject]
public class TSRepository : ITSRepository
{
    private ISessionFactory _sessionFactory;
    private Configuration _configuration;

    public TSRepository()
    {
        _configuration = new Configuration();
        _configuration.Configure();
        _configuration.AddAssembly(typeof(TSEndpoint).Assembly);
        _sessionFactory = _configuration.BuildSessionFactory();
    }

    [DataObjectMethod(DataObjectMethodType.Insert)]
    public void Add(TSEndpoint testSystemEndpoint)
    {
        if (testSystemEndpoint != null)
        {
            using (ISession session = NHibernateHelper.OpenSession())
            using (ITransaction transaction = session.BeginTransaction())
            {
                session.Save(testSystemEndpoint);
                transaction.Commit();
            }
        }
    }

    [DataObjectMethod(DataObjectMethodType.Update)]
    public void Update(TSEndpoint testSystemEndpoint)
    {
        using (ISession session = NHibernateHelper.OpenSession())
        using (ITransaction transaction = session.BeginTransaction())
        {
            session.Update(testSystemEndpoint);
            transaction.Commit();
        }
    }

    [DataObjectMethod(DataObjectMethodType.Delete)]
    public void Remove(TSEndpoint testSystemEndpoint)
    {
        using (ISession session = NHibernateHelper.OpenSession())
        using (ITransaction transaction = session.BeginTransaction())
        {
            session.Delete(testSystemEndpoint);
            transaction.Commit();
        }
    }

    [DataObjectMethod(DataObjectMethodType.Select)]
    public ICollection<TSEndpoint> GetTSEndpoints()
    {
        using (ISession session = NHibernateHelper.OpenSession())
        {
            var testSystems = session
                .CreateCriteria(typeof(TSEndpoint))                    
                .List<TSEndpoint>();
            return testSystems;
        }
    }
}

Я был бы очень рад, если бы кто-то мог помочь мне с двумя моими проблемами.

Ответы на вопрос(2)

Ваш ответ на вопрос