Hallo,
Ik heb een klein voorbeeld gemaakt met een "Person" klasse, welke een lijst van Pets bevat. Daarnaast een simpele repository die de Person objecten kan saven/deleten/selecten.
Nu plak ik een formview (of detailsview) op mijn formulier, kies voor een objectdatasource welke wijst naar mijn repository. Tot nu toe werkt het perfect, ik kan personen aanmaken, updaten, deleten, alles... Ik kan zelfs mijn collectie pets tonen door een itemtemplate te maken binnen mijn formview.
Maar tijdens het updaten raak ik wel mijn collectie pets kwijt! Als ik kijk naar het "Updating" event van de objectbindingsource, zie ik ook dat in de e.InputParameters mijn Person alle waarden bevat die ik ingevuld heb, maar de collectie pets bevat altijd 0 items. Als ik kijk naar het Selected event van de objectbindingsource, zie ik in de e.ReturnValue wel mijn person inclusief pets. Iemand een idee?
Person klasse
[code=c#]
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>();
}
}
[/code=c#]
Repository
[code=c#]
[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)
{
}
}
[/code=c#]
Ik heb een klein voorbeeld gemaakt met een "Person" klasse, welke een lijst van Pets bevat. Daarnaast een simpele repository die de Person objecten kan saven/deleten/selecten.
Nu plak ik een formview (of detailsview) op mijn formulier, kies voor een objectdatasource welke wijst naar mijn repository. Tot nu toe werkt het perfect, ik kan personen aanmaken, updaten, deleten, alles... Ik kan zelfs mijn collectie pets tonen door een itemtemplate te maken binnen mijn formview.
Maar tijdens het updaten raak ik wel mijn collectie pets kwijt! Als ik kijk naar het "Updating" event van de objectbindingsource, zie ik ook dat in de e.InputParameters mijn Person alle waarden bevat die ik ingevuld heb, maar de collectie pets bevat altijd 0 items. Als ik kijk naar het Selected event van de objectbindingsource, zie ik in de e.ReturnValue wel mijn person inclusief pets. Iemand een idee?
Person klasse
[code=c#]
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>();
}
}
[/code=c#]
Repository
[code=c#]
[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)
{
}
}
[/code=c#]