Я сделал небольшой пример с классом Person, который содержит список Pets. Кроме того, существует простой репозиторий, который может сохранять / удалять / выбирать объекты Person.
Теперь я помещаю в форму представление (или представление сведений), выбираю источник данных объекта, который указывает на мой репозиторий. Пока это работает отлично, я могу создавать, обновлять, удалять людей ... Я даже могу показать свою коллекцию домашних животных в шаблоне элемента на мой взгляд.
Но когда я обновляю человека, моя коллекция питомцев очищается! Когда я смотрю на событие «Обновление» источника привязки объекта, e.InputParameters содержит все мои введенные значения, но коллекция pets всегда содержит 0 элементов. Когда я смотрю на событие Selected источника привязки объекта, мой e.ReturnValue содержит моего выбранного человека, включая домашних животных, и это правильно. Есть идеи?
Вот мой личный класс и мой репозиторий. Это небольшой пример того, что на самом деле является проектом linq2hibernate.
public class Person
{
public int ID { get; set; }
public string Name { get; set; }
public int Age { get; set; }
public List<Pet> Pets { get; set; }
public Person()
{
Pets = new List<Pet>();
}
}
[DataObject]
public class Repository
{
List<Person> people = new List<Person>();
public Repository()
{
//Code to load the person list
}
public Person FindByID(int ID)
{
return people.SingleOrDefault(x => x.ID == ID);
}
public List<Person> FindAll()
{
return people;
}
public void Save(Person person)
{
// code to save a person
// Here you can see a person's pets collection is always empty
// when this method is called by the objectdatasource
}
public void Delete(Person person)
{
}
public void Insert(Person person)
{
}
}