Ahoj, zkusil jsem to, ale bohužel bez výsledku. Zkoušel jsem stopovat co se v aplikaci děje a zdá se mi, že problém je někde jinde - nenapadá mě jiné označení než v relaci mezi tabulkami. Když vytvářím task, tak každý task má property Group
[Column]
internal int _groupId;
private EntityRef<Group> _group;
[Association(Storage="_group",ThisKey="_groupId",OtherKey="Id",IsForeignKey=true)]
public Group Group
{
get
{
return _group.Entity;
}
set
{
NotifyPropertyChanging("Group");
_group.Entity = value;
if (value != null)
{
_groupId = value.Id;
}
NotifyPropertyChanged("Group");
}
}
a ten nastavuji z listboxu. Když zapisuji task do databaze, tak to provádím ve ViewModel pomocí metody AddTask
public void AddWord(Task t)
{
dataContext.Tasks.InsertOnSubmit(t);
dataContext.SubmitChanges();
//SaveChangesToDatabse();
AllTasks.Add(word);
}
dataContext proměnný třídy MyDataContext, která má veřejnou proměnou Groups
public Table<Group> Groups;
A když se pokoušim provést nové získání dat ve ViewModelu z databáze, tak Tasky získám všechny, včetně nově přidaného, ale Groups získá staré záznamy - prostě neví, že se něco změnilo - že existuje nový prvek se kterým má relaci... Zkoušel jsem manuálně volat NotifyPropertyChanged("AllGroups") nebo změnit jméno (změna se provedel, ale počet prvků v relaci se nezmění). Nenapadá Vás prosím něco?
|