私はここだけで混乱しています(多分私は何かが足りないのですか?)SQLiteとSQLite Net Extensions - 外部キー制約はどこにありますか?
地球上で私のSQLiteのDBは、外部キー関係を作成されていないsqlite-net-extensions上のサンプルを使用して作成した理由を、私はうまくしようとしている私の髪を引っ張ってきました
私はここだけで混乱しています(多分私は何かが足りないのですか?)SQLiteとSQLite Net Extensions - 外部キー制約はどこにありますか?
地球上で私のSQLiteのDBは、外部キー関係を作成されていないsqlite-net-extensions上のサンプルを使用して作成した理由を、私はうまくしようとしている私の髪を引っ張ってきました
私は本当に、本当に、ドキュメント、リリース、コミュニティの人々がパッケージ化に時間がかかるという事実に感謝し、私たちの残りのための彼らの素晴らしいコードを維持しない - 私は本当に。
したがってすべての寄稿者にSQLite、SQLiteNetおよびSQLite Net Extensionsに感謝します。フランク・クルーガー、オイステイン・クログ、ギレルモ・グティエレス・ドラル、そして残りのすべて。
ただし.... .... Erm、なんと!
私はこのSO post
で答えを見つけはい、それは正常です。 SQLite-Net Extensionsは SQLite-Netの上に構築されているため、外部キー制約はサポートされていないため、 データベースレイヤーに宣言されている外部キーはありません。
コアのSQLite-Netメソッドを使用すると、[ForeignKey]プロパティは 整数プロパティーに制限されているため、実行時エラーなしで を自由に変更できます。
すなわちのForeignKey属性の名前は、非常に紛らわしいです。実際には単純なインデックスとして実装されています。
"Valuation_StockId" のデータ整合性の制約をデータベースレベルで残しています。
したがって、(データベースレベルでは、非コヒーレントで制約のないデータを直接挿入することができます)。存在しないStockIdを使ってStockを参照するValuation。
それだけでなく、コードベースの中には何もしません。
属性「ForeignKey」は実際には外部キー関係をまったく提供しません。
これは外部キーではありません。それは私の心の中ではです。これは本当に危険ですです。もう一度
- は、私たちの残りの部分にすべてのコードをリリース人々にありがとう - そして、できればこれは私が好きな他の誰かが、彼らが間違っていた何かを仕事にしようと自分の髪を引っ張っているに役立つかもしれません。
すべての記載が正しいです。私はそれをより明確にするためにドキュメントを更新します。属性名の変更について...提案は大歓迎です、私は自分自身でより良い名前を見つけることができませんでした。 – redent84
すばらしいコードを高く評価してください。適切な名前を考えていると、熟考して何か良いものを思いついたかどうかを知らせます(それは簡単ではありません)。ありがとう。 ! – MemeDeveloper
頭の上から外れる - ForeignEntityまたはForeignRowまたはRelatedEntityまたはRelatedRowについてはどうですか? – MemeDeveloper