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 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | [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 1 2 3 4 5 6 7 | 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 1 | 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?
|