1
我在sqlite的三种模式(表)如下:在sqlite的xamarin外键引用删除操作形成
public class Program
{
[PrimaryKey, AutoIncrement]
public int ProgramId { get; set; }
public string Name { get; set; }
}
public class Training
{
[PrimaryKey, AutoIncrement]
public int TrainingId { get; set; }
[ForeignKey(typeof(Program))]
public int ProgramId { get; set; }
}
public class Instructor
{
[PrimaryKey, AutoIncrement]
public int InstructorId { get; set; }
[ForeignKey(typeof(Program))]
public int ProgramId { get; set; }
}
我有两个外键ProgramId
在训练和导师表引用的主键ProgramId
程序表。我想在表程序中进行删除操作,其中ProgramId
== 1,并且我希望这个删除操作也会在相应的两个表Training and Instructor
中受到影响。如何使用xamarin表单在sqlite中实现这一点?
请指教。谢谢。
为什么这个'Training []'和'Instructor []'? 如果我使用'var prog = con.GetWithChildren(ProgramId); con.Delete(prog,true);',它是否会删除其他两个表中的记录? –
jones
1 - 这是在SQLite-net-extensions包中定义级联操作所需的符号。请阅读我在已发布的链接中提到的文档,以获取有关其符号和功能的更多信息; 2 - 如果您不使用记号并进行我建议的更改,则不会有任何变化。方法名称中的“Children”部分由'Trainings'和'Instructors'属性的属性传递。 –