Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.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
Monotouch Sqlite net或ADO.net_Sqlite_Ado.net_Xamarin.ios_Sqlite Net - Fatal编程技术网

Monotouch Sqlite net或ADO.net

Monotouch Sqlite net或ADO.net,sqlite,ado.net,xamarin.ios,sqlite-net,Sqlite,Ado.net,Xamarin.ios,Sqlite Net,我想在我的Monotouch应用程序中使用Sqlite数据库。从中我看到两种选择 Sqlite网络 ADO.NET 通过研究,我发现Sqlite net易于使用,可以在ios和android上运行,但不支持外键概念。我的需要是在我的db中建立关系。学生表链接到班级、教授、作业表。没那么复杂!!! Sqlite net是否支持这种关系?选择Sqlite net还是ADO.net更好。 感激。。。 谢谢ADO.Net也没有为关系提供现成的支持。它只提供原始类,如SQLCommand和SQLDataR

我想在我的Monotouch应用程序中使用Sqlite数据库。从中我看到两种选择

  • Sqlite网络
  • ADO.NET
  • 通过研究,我发现Sqlite net易于使用,可以在ios和android上运行,但不支持外键概念。我的需要是在我的db中建立关系。学生表链接到班级、教授、作业表。没那么复杂!!! Sqlite net是否支持这种关系?选择Sqlite net还是ADO.net更好。 感激。。。
    谢谢

    ADO.Net也没有为关系提供现成的支持。它只提供原始类,如
    SQLCommand
    SQLDataReader

    我强烈推荐sqlite net,因为作为ORM,它可以节省大量时间

    您可以通过在sqlite net中调用手动SQL语句来设置外键,这与您在ADO.net中所做的相同

    因此,使用sqlite net,有几种方法可以设置数据库:

  • 调用sqlite net的API,根据您的C#类创建表,然后添加手动SQL不支持的东西,如外键和索引
  • 在已设置完整架构的应用程序中包含空数据库
  • 使用原始SQL脚本创建整个数据库

  • 如果我想要完全控制数据库模式,我倾向于使用选项#2(而且包含我在SQLite Expert中创建的数据库文件更容易一些)。sqlite net应该可以与现有数据库配合使用。

    除非您对SQL和模式一无所知,否则我也会警惕(1),因为开发人员使用这种方法,不知道/不理解它变成了什么模式,这会给我带来很多问题。另外,您知道当您需要更新模式时会发生什么吗,例如向表中添加一个新字段?如果向类中添加一个字段,那么旧数据会发生什么变化,因为它可能是为应用程序版本更新而添加的?是的,我通常使用#2,然后必须为架构更改启动自己的迁移计划。是提前创建数据库的好工具。