Я использую Vici.CoolStorage в приложении Windows Phone 7 для доступа к базе данных SQLite.В этой строке я получаю исключение нулевой ссылки:
CSList<Regimen> regimens = Regimen.List();
В моей базе данных есть две таблицы:
CREATE TABLE Regimen (
ID INTEGER PRIMARY KEY,
Name TEXT(50) NOT NULL
);
CREATE TABLE WorkoutDay (
ID INTEGER PRIMARY KEY,
DayNumber INTEGER NOT NULL,
RegimenID INTEGER REFERENCES Regimen(ID)
);
Сопоставление для связанных моделей:
using Vici.CoolStorage;
namespace MyApp.Core.Domain
{
[MapTo("Regimen")]
public class Regimen : CSObject<Regimen,int>
{
public int ID
{
get { return (int)GetField("ID"); }
set { SetField("ID", value); }
}
public string Name
{
get { return (string)GetField("Name"); }
set { SetField("Name", value); }
}
[OneToMany(LocalKey = "ID", ForeignKey = "RegimenID")]
public CSList WorkoutDays
{
get { return (CSList)GetField("WorkoutDays"); }
}
}
}
using Vici.CoolStorage;
namespace MyApp.Core.Domain
{
[MapTo("WorkoutDay")]
public class WorkoutDay : CSObject<WorkoutDay,int>
{
public int ID
{
get { return (int)GetField("ID"); }
set { SetField("ID", value); }
}
public int DayNumber
{
get { return (int)GetField("DayNumber"); }
set { SetField("DayNumber", value); }
}
[ManyToOne(LocalKey="RegimenID", ForeignKey="ID")]
public Regimen Regimen
{
get { return (Regimen)GetField("Regimen"); }
set { SetField("Regimen", value);}
}
}
}
Если я закомментирую отношение OneToMany в модели режима, оно будет работать нормально.Я не могу понять, что не так с моим отображением.