Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQLite和SQLite网络扩展-其中';外键约束是什么?_Sqlite_Foreign Key Relationship_Sqlite Net Extensions - Fatal编程技术网

SQLite和SQLite网络扩展-其中';外键约束是什么?

SQLite和SQLite网络扩展-其中';外键约束是什么?,sqlite,foreign-key-relationship,sqlite-net-extensions,Sqlite,Foreign Key Relationship,Sqlite Net Extensions,我只是在这里感到困惑(也许我错过了什么?) 我一直在绞尽脑汁想弄清楚,为什么我用上的示例创建的SQLite DB不创建外键关系,我真的很感激社区中的人们花时间打包、记录、,为我们其他人发布并维护他们的很棒的代码——我真的这么做了 因此感谢所有SQLite、SQLiteNet和SQLite Net扩展的贡献者。弗兰克·克鲁格、奥伊斯坦·克罗格、吉列尔莫·古铁雷斯·多拉尔和其他所有人 然而。。。。呃,什么 我在这个问题上找到了答案 是的,这很正常。SQLite Net Extensions构建在 S

我只是在这里感到困惑(也许我错过了什么?)


我一直在绞尽脑汁想弄清楚,为什么我用上的示例创建的SQLite DB不创建外键关系,我真的很感激社区中的人们花时间打包、记录、,为我们其他人发布并维护他们的很棒的代码——我真的这么做了

因此感谢所有SQLite、SQLiteNet和SQLite Net扩展的贡献者。弗兰克·克鲁格、奥伊斯坦·克罗格、吉列尔莫·古铁雷斯·多拉尔和其他所有人

然而。。。。呃,什么

我在这个问题上找到了答案

是的,这很正常。SQLite Net Extensions构建在 SQLite Net,它不支持外键约束,所以 数据库层没有声明外键

使用核心SQLite Net方法,[ForeignKey]属性只是一个 integer属性,该属性没有任何类型的限制,因此您可以 随意修改它,不会出现运行时错误

i、 e.ForeignKey属性的名称具有误导性。
它实际上是作为一个简单的索引实现的

e、 g.“Valuation_StockId”使您在数据库级别没有数据完整性约束

因此,您可以(在数据库级别直接插入不一致且不受约束的数据),例如,引用不存在的股票(通过其列StockId)的估价

不仅如此,代码库中的任何内容都不会阻止您这样做

所以要小心,“ForeignKey”属性实际上根本没有为您提供外键关系

它不是外键,也不应该以暗示它是外键的方式命名-在我看来这真的很危险


再次-感谢向我们其他人发布了他们所有代码的人-希望这能帮助像我这样的人努力找出他们做错了什么

我真的非常感谢社区中的人们花时间为我们其他人打包、记录、发布和维护他们的很棒的代码,我真的很感激

因此感谢所有SQLite、SQLiteNet和SQLite Net扩展的贡献者。弗兰克·克鲁格、奥伊斯坦·克罗格、吉列尔莫·古铁雷斯·多拉尔和其他所有人

然而。。。。呃,什么

我在这个问题上找到了答案

是的,这很正常。SQLite Net Extensions构建在 SQLite Net,它不支持外键约束,所以 数据库层没有声明外键

使用核心SQLite Net方法,[ForeignKey]属性只是一个 integer属性,该属性没有任何类型的限制,因此您可以 随意修改它,不会出现运行时错误

i、 e.ForeignKey属性的名称具有误导性。
它实际上是作为一个简单的索引实现的

e、 g.“Valuation_StockId”使您在数据库级别没有数据完整性约束

因此,您可以(在数据库级别直接插入不一致且不受约束的数据),例如,引用不存在的股票(通过其列StockId)的估价

不仅如此,代码库中的任何内容都不会阻止您这样做

所以要小心,“ForeignKey”属性实际上根本没有为您提供外键关系

它不是外键,也不应该以暗示它是外键的方式命名-在我看来这真的很危险


再次-感谢向我们其他人发布了他们所有代码的人-希望这能帮助像我这样的人努力找出他们做错了什么

每一点都是正确的。我将更新文档以使其更清晰。关于更改属性名称。。。欢迎您的建议,我自己也找不到更好的名字了。我非常感谢您的建议,也非常感谢您的精彩代码。我一直在考虑合适的名字,如果我能想出更好的名字,我会仔细考虑并告诉你(这并不容易)。谢谢不在头上-ForeignEntity或ForeignRow或RelatedEntity或RelatedRow如何?每一点都是正确的。我将更新文档以使其更清晰。关于更改属性名称。。。欢迎您的建议,我自己也找不到更好的名字了。我非常感谢您的建议,也非常感谢您的精彩代码。我一直在考虑合适的名字,如果我能想出更好的名字,我会仔细考虑并告诉你(这并不容易)。谢谢不在头上-ForeignEntity或ForeignRow或RelatedEntity或RelatedRow如何?