I have a SQLite DB that is set up so when I delete a Person the delete is cascaded. This works fine when I manually delete a Person (all records that reference the PersonID
Sounds like a provider bug to me. The cascade should be picked up from the DB. Try it with SQL Server; you'll see it works there. You should report this to whoever wrote your SQLite provider.