{"id":9150,"date":"2018-05-25T10:09:35","date_gmt":"2018-05-25T01:09:35","guid":{"rendered":"http:\/\/www.moonmile.net\/blog\/?p=9150"},"modified":"2018-05-24T00:22:43","modified_gmt":"2018-05-23T15:22:43","slug":"xamarin-froms-net-standard%e3%81%a7%e3%83%ad%e3%83%bc%e3%82%ab%e3%83%ab%e3%81%aa-sqlite-%e3%83%87%e3%83%bc%e3%82%bf%e3%83%99%e3%83%bc%e3%82%b9%e3%82%92%e4%bd%bf%e3%81%86","status":"publish","type":"post","link":"http:\/\/www.moonmile.net\/blog\/archives\/9150","title":{"rendered":"Xamarin.Froms+.NET Standard\u3067\u30ed\u30fc\u30ab\u30eb\u306a SQLite \u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3092\u4f7f\u3046"},"content":{"rendered":"<p>Xamarin.Forms\u3067SQLite\u3092\u6271\u3046\u8a18\u4e8b\u306f\u3044\u304f\u3064\u304b\u3042\u308b\u306e\u3060\u3051\u3069\u3001.NET Standard 2.0\u3092\u6271\u3063\u305f\u3082\u306e\u306f\u3001\u4ee5\u4e0b\u3057\u304b\u306a\u304b\u3063\u305f\u306e\u3067\u30e1\u30e2\u4ee3\u308f\u308a\u306b\u8a18\u9332\u3057\u3066\u304a\u304f\u3002<\/p>\n<p>Xamarin.Forms, NET Standard 2.0 et Entity Framework Core avec SQLite ? Christophe Gigax<br \/>\n<a href=\"http:\/\/www.christophe.gigax.fr\/2017\/11\/23\/xamarin-forms-net-standard-2-0-et-entity-framework-core-avec-sqlite\/\">http:\/\/www.christophe.gigax.fr\/2017\/11\/23\/xamarin-forms-net-standard-2-0-et-entity-framework-core-avec-sqlite\/<\/a><\/p>\n<p>\u3057\u304b\u3082\u8a18\u4e8b\u304c\u30d5\u30e9\u30f3\u30b9\u8a9e\u3060\u3068\u3044\u3046&#8230;\u30b3\u30fc\u30c9\u3092\u8aad\u3081\u308c\u3070\u5341\u5206\u306a\u3093\u3060\u3051\u3069\u3002<\/p>\n<h2>\u30ed\u30fc\u30ab\u30eb\u306aSQLite\u30d5\u30a1\u30a4\u30eb\u3092\u7528\u610f\u3059\u308b<\/h2>\n<p>\u5927\u62b5\u306e\u8a18\u4e8b\u304c\u30a2\u30d7\u30ea\u306e\u5b9f\u884c\u6642\u306b\u65b0\u898f\u306bSQLite\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u3063\u3066\u3044\u3066\u3001\u3058\u3083\u3042\u65e2\u5b58\u306eSQLite\u30d5\u30a1\u30a4\u30eb\u3092\u4f7f\u3044\u305f\u3044\u5834\u5408\u306f\u3069\u3046\u3059\u308b\u306e\u304b\uff1f\u3068\u3044\u3046\u306e\u304c\u7121\u304b\u3063\u305f\u3002Android\u306e\u8a18\u4e8b\u3067\u4f3c\u305f\u3082\u306e\u304c\u3042\u3063\u305f\u306e\u3067\u3001\u3053\u308c\u3092\u6d3b\u7528\u3057\u3066\u3044\u304f\u3002<\/p>\n<p>Android SDK assets\u306e\u5185\u5bb9\u3092\u5168\u3066\u30ed\u30fc\u30ab\u30eb\u306b\u30b3\u30d4\u30fc\u3059\u308b &#8211; \u81ea\u5815\u843d\u306a\u307a\u3047\u3058<br \/>\n<a href=\"http:\/\/d.hatena.ne.jp\/corrupt\/20110203\/1296695472\">http:\/\/d.hatena.ne.jp\/corrupt\/20110203\/1296695472<\/a><\/p>\n<p>Entitiy Model \u30af\u30e9\u30b9\u306f MySQL \u306e redmine \u304b\u3089\u501f\u308a\u3066\u6765\u308b\u3002\u3072\u3068\u307e\u305a\u3001projects \u3068 issues \u306e\u69cb\u9020\u3092\u7528\u610f\u3057\u3066\u304a\u304f\u3002<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\r\npublic class projects\r\n{\r\n    public int id { get; set; }\r\n    public string name { get; set; }\r\n    public string description { get; set; }\r\n    public string homepage { get; set; }\r\n    public int is_public { get; set; }\r\n    public int? parent_id { get; set; }\r\n    public DateTime? created_on { get; set; }\r\n    public DateTime? updated_on { get; set; }\r\n    public string identifier { get; set; }\r\n    public int status { get; set; }\r\n    public int? lft { get; set; }\r\n    public int? rgt { get; set; }\r\n    public int inherit_members { get; set; }\r\n    public int? default_version_id { get; set; }\r\n}\r\n\r\npublic class issues\r\n{\r\n    public int id { get; set; }\r\n    public int tracker_id { get; set; }\r\n    public int project_id { get; set; }\r\n    public string subject { get; set; }\r\n    public string description { get; set; }\r\n    public DateTime? due_date { get; set; }\r\n    public int? category_id { get; set; }\r\n    public int status_id { get; set; }\r\n    public int? assigned_to_id { get; set; }\r\n    public int priority_id { get; set; }\r\n    public int? fixed_version_id { get; set; }\r\n    public int author_id { get; set; }\r\n    public int lock_version { get; set; }\r\n    public DateTime? created_on { get; set; }\r\n    public DateTime? updated_on { get; set; }\r\n    public DateTime? start_date { get; set; }\r\n    public int done_ratio { get; set; }\r\n    public double? estimated_hours { get; set; }\r\n    public int? parent_id { get; set; }\r\n    public int? root_id { get; set; }\r\n    public int? lft { get; set; }\r\n    public int? rgt { get; set; }\r\n    public int is_private { get; set; }\r\n    public DateTime? closed_on { get; set; }\r\n}\r\n<\/pre>\n<p>SQLite \u3067\u3042\u3089\u304b\u3058\u3081\u30c6\u30fc\u30d6\u30eb\u3092\u4f5c\u6210\u3057\u3066\u304a\u304f\u3002<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\r\ncreate table issues (\r\n\tid int PRIMARY KEY AUTOINCREMENT,\r\n\ttracker_id int,\r\n\tproject_id int,\r\n\tsubject text,\r\n\tdescription\ttext,\r\n\tdue_date text,\r\n\tcategory_id int,\r\n\tstatus_id int,\r\n\tassigned_to_id int,\r\n\tpriority_id int,\r\n\tfixed_version_id int,\r\n\tauthor_id int,\r\n\tlock_version int,\r\n\tcreated_on text,\r\n\tupdated_on text,\r\n\tstart_date text,\r\n\tdone_ratio int,\r\n\testimated_hours real,\r\n\tparent_id int,\r\n\troot_id int,\r\n\tlft int,\r\n\trgt int,\r\n\tis_private int,\r\n\tclosed_on text\r\n);\r\ncreate table projects (\r\n\tid integer PRIMARY KEY AUTOINCREMENT,\r\n\tname text,\r\n\tdescription text,\r\n\thomepage text,\r\n\tis_public int,\r\n\tparent_id int,\r\n\tcreated_on text,\r\n\tupdated_on text,\r\n\tidentifier text,\r\n\tstatus int,\r\n\tlft int,\r\n\trgt int,\r\n\tinherit_members int,\r\n\tdefault_version_id int,\r\n\tdefault_assigned_to_id int\r\n);\r\n<\/pre>\n<p>\u578b\u306e\u5909\u63db\u30eb\u30fc\u30eb\u306f\u3001<\/p>\n<ul>\n<li>MySQL\u306evarchar\u3092SQLite\u3067text\u3078<\/li>\n<li>MySQL\u306edatetime\u3092SQLite\u3067text\u3078<\/li>\n<\/ul>\n<p>\u3053\u3068\u306b\u306a\u308b\u3002SQLite\u306b\u306f\u65e5\u4ed8\u578b\u304c\u306a\u3044\u306e\u3067\u6587\u5b57\u5217\uff08text\u578b\uff09\u3068\u3057\u3066\u6271\u3046\u306e\u3060\u304c\u3001Microsoft.EntityFrameworkCore.Sqlite \u304c\u3046\u307e\u3044\u3053\u3068\u65e5\u4ed8\u3068\u6587\u5b57\u5217\u3092\u76f8\u4e92\u5909\u63db\u3057\u3066\u304f\u308c\u308b\u306e\u3067\u3001Entitiy \u306e\u307b\u3046\u306f DateTime \u306e\u307e\u307e\u3067\u826f\u3044\u3002<\/p>\n<h2>MySQL\u304b\u3089SQLite\u3078\u30b3\u30d4\u30fc\u3059\u308b<\/h2>\n<p>\u3061\u3087\u3063\u3068\u4e71\u66b4\u3060\u304c\u3001.NET Core \u3067 Console \u30a2\u30d7\u30ea\u3092\u4f7f\u3063\u3066\u3001NuGet \u3067 MySql.Data.EntityFrameworkCore \u3068 Microsoft.EntityFrameworkCore.Sqlite \u3092\u8ffd\u52a0\u3059\u308b\u3053\u3068\u3067 EF \u3092\u4f7f\u3063\u3066 MySQL \u304b\u3089 SQLite \u3078\u30b3\u30d4\u30fc\u3059\u308b\u30c4\u30fc\u30eb\u304c\u4f5c\u308c\u308b\u3002<\/p>\n<p>MySQL\u306eEF<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\r\npublic partial class RedmineEntities : DbContext\r\n{\r\n    public RedmineEntities()\r\n    {\r\n\r\n    }\r\n    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)\r\n    {\r\n        base.OnConfiguring(optionsBuilder);\r\n\r\n        var fname = &amp;quot;redmine.sqlite3&amp;quot;;\r\n        var docs = System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments);\r\n        var path = System.IO.Path.Combine(docs, fname);\r\n\r\n        optionsBuilder.UseSqlite($&amp;quot;Data Source={path}&amp;quot;);\r\n    }\r\n\r\n    public DbSet&lt;projects&gt; projects { get; set; }\r\n    public DbSet&lt;issues&gt; issues { get; set; }\r\n}\r\n<\/pre>\n<p>SQLite\u306eEF<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\r\npublic partial class RedmineEntitiesMySql : DbContext\r\n{\r\n    public RedmineEntitiesMySql()\r\n    {\r\n\r\n    }\r\n        \r\n    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)\r\n    {\r\n        base.OnConfiguring(optionsBuilder);\r\n        \/\/ SSH \u30d5\u30a9\u30ef\u30fc\u30c7\u30a3\u30f3\u30b0\u3057\u3066\u304a\u304f\r\n        \/\/ ssh -L 19000:localhost:3306 pi@raspi3.local\r\n        optionsBuilder.UseMySQL(@&amp;quot;server=localhost;user id=redmine;password=redmine;database=redmine;port=19000;sslmode=None&amp;quot;);\r\n    }\r\n\r\n    public DbSet&lt;projects&gt; projects { get; set; }\r\n    public DbSet&lt;issues&gt; issues { get; set; }\r\n}\r\n<\/pre>\n<p>main \u95a2\u6570<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\r\nclass Program\r\n{\r\n    static void Main(string&#x5B;] args)\r\n    {\r\n        Console.WriteLine(&quot;copy MySQL to SQLite&quot;);\r\n\r\n        var mysql = new RedmineEntitiesMySql();\r\n        var sqlite = new RedmineEntities();\r\n\r\n        \/\/ projects\u3068isseus\u306e\u4e2d\u8eab\u3092\u6d88\u3059\r\n        sqlite.Database.ExecuteSqlCommand(&quot;delete from projects&quot;);\r\n        sqlite.Database.ExecuteSqlCommand(&quot;delete from issues&quot;);\r\n        \/\/ \u30c7\u30fc\u30bf\u3092\u30b3\u30d4\u30fc\u3059\u308b\r\n        sqlite.projects.AddRange(mysql.projects.ToListAsync().Result);\r\n        sqlite.issues.AddRange(mysql.issues.ToListAsync().Result);\r\n        sqlite.SaveChanges();\r\n        Console.WriteLine(&quot;\u30b3\u30d4\u30fc\u3057\u307e\u3057\u305f&quot;);\r\n    }\r\n}\r\n<\/pre>\n<p>DB Browser for SQLite \u3067\u4e2d\u8eab\u3092\u78ba\u8a8d\u3057\u3066\u304a\u304f\u3002\u30d5\u30a1\u30a4\u30eb\u540d\u306f\u300credmine.sqlite3\u300d\u3068\u3057\u3066\u3044\u308b\u3002<\/p>\n<p><a href=\"http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2018\/05\/dworkblogimage20180523_01org.jpg\"><img decoding=\"async\" src=\"http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2018\/05\/dworkblogimage20180523_01thum.jpg\" border=\"0\" \/><\/a><\/p>\n<h2>Xamarin.Froms\u306bredmine.sqlite3\u3092\u8ffd\u52a0\u3059\u308b<\/h2>\n<p>\u3055\u3066\u3001Android\u9650\u5b9a\u306b\u306a\u308b\u306e\u3060\u304c\uff08iOS\u306f\u307e\u3060\u8abf\u3079\u3066\u3044\u306a\u3044\uff09\u3001SQLite\u30d5\u30a1\u30a4\u30eb\u3092\u6307\u5b9a\u3059\u308b\u305f\u3081\u306b\u306f\u3001\u3069\u3053\u304b\u8aad\u307f\u8fbc\u3081\u308b\u3068\u3053\u308d\u306b\u30d5\u30a1\u30a4\u30eb\u3092\u30b3\u30d4\u30fc\u3057\u3066\u304a\u304b\u306a\u3044\u3068\u3044\u3051\u306a\u3044\u3002\u3053\u308c\u306b\u306f2\u3064\u306e\u65b9\u6cd5\u304c\u3042\u3063\u3066\u3001<\/p>\n<ul>\n<li>\u8d77\u52d5\u6642\u306b1\u56de\u3060\u3051\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3092\u901a\u3058\u3066\u53d6\u3063\u3066\u304f\u308b\u3002<\/li>\n<li>\u8d77\u52d5\u6642\u306b1\u56de\u3060\u3051\u30ea\u30bd\u30fc\u30b9\u304b\u3089\u30b3\u30d4\u30fc\u3059\u308b\u3002<\/li>\n<\/ul>\n<p>\u3053\u3068\u306b\u306a\u308b\u3002\u30b2\u30fc\u30e0\u306a\u3069\u306e\u753b\u50cf\u30d5\u30a1\u30a4\u30eb\u3084\u66f4\u65b0\u30c7\u30fc\u30bf\u306a\u3069\u306f\u3001\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u304b\u3089\u53d6\u3063\u3066\u304d\u3066 Android \u5185\u306b\u7f6e\u304f\u30d1\u30bf\u30fc\u30f3\u304c\u591a\u3044\u306e\u3060\u304c\u3001\u4eca\u56de\u306f\u30ea\u30bd\u30fc\u30b9\u304b\u3089\u30b3\u30d4\u30fc\u3057\u3066\u307f\u308b\u3002<\/p>\n<p>Android SDK assets\u306e\u5185\u5bb9\u3092\u5168\u3066\u30ed\u30fc\u30ab\u30eb\u306b\u30b3\u30d4\u30fc\u3059\u308b &#8211; \u81ea\u5815\u843d\u306a\u307a\u3047\u3058<br \/>\n<a href=\"http:\/\/d.hatena.ne.jp\/corrupt\/20110203\/1296695472\">http:\/\/d.hatena.ne.jp\/corrupt\/20110203\/1296695472<\/a><\/p>\n<p>\u3053\u3053\u306e\u8a18\u4e8b\u3092\u53c2\u8003\u306b\u3057\u3066\u3001Assets\/redmine.sqlite3 \u30d5\u30a1\u30a4\u30eb\u3092\u3001\/data\/user\/0\/&#8230;\/files\/redmine.sqlite3 \u3078\u30b3\u30d4\u30fc\u3059\u308b\u3002\u3053\u308c\u306f\u3001Xamarin.Forms\u306eAndroid \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u307b\u3046\u306b\u4f5c\u3063\u3066\u304a\u304f\u3002<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\r\nprivate string copyLocal( string fname )\r\n{\r\n    var st = new System.IO.BinaryReader( this.Resources.Assets.Open(fname));\r\n    var docs = System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments);\r\n    var ofname = System.IO.Path.Combine(docs, fname);\r\n    var ofs = System.IO.File.OpenWrite(ofname);\r\n    int DEFAULT_BUFFER_SIZE = 1024 * 4;\r\n    byte&#x5B;] buf  = new byte&#x5B;DEFAULT_BUFFER_SIZE];\r\n    int n = 0;\r\n    int nn = 0;\r\n    while ((n = st.Read(buf, 0, buf.Length)) &gt; 0)\r\n    {\r\n        ofs.Write(buf, 0, n);\r\n        System.Diagnostics.Debug.WriteLine(string.Format(&amp;quot;cnt: {0}&amp;quot;, nn));\r\n        nn++;\r\n    }\r\n    ofs.Close();\r\n    st.Close();\r\n    return ofname;\r\n}\r\n<\/pre>\n<h2>Xamarin.Forms\u306b\u300cMicrosoft.EntityFrameworkCore.Sqlite\u300d\u3092\u8ffd\u52a0\u3059\u308b<\/h2>\n<p>Xamarin.Forms\u306e.NET Standard\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u307b\u3046\u306b\u3001Nuget \u3067 Microsoft.EntityFrameworkCore.Sqlite \u3092\u8ffd\u52a0\u3059\u308b\u3002<br \/>\nEF \u306e\u63a5\u7d9a\u6587\u5b57\u5217\u306f\u3001SQLite\u30d5\u30a1\u30a4\u30eb\u3078\u306e\u30d1\u30b9\u306b\u306a\u308b\u306e\u3067\u3001\u30b3\u30d4\u30fc\u5148\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u6307\u5b9a\u3055\u305b\u308b\u3002<\/p>\n<p>\u3061\u306a\u307f\u306b\u300cMicrosoft.EntityFrameworkCore.Sqlite.Core\u300d\u3068\u3044\u3046\u306e\u3082\u3042\u308b\u304c\u3001\u3053\u306e .Core \u4ed8\u304d\u3068\u306a\u3044\u306e\u3068\u3069\u3046\u9055\u3046\u306e\u304b\u308f\u304b\u3089\u306a\u3044\u3002Xamarin.Forms \u306e\u5834\u5408\u306f\u3001.Core \u4ed8\u304d\u3067\u306f\u52d5\u304b\u306a\u304b\u3063\u305f\u306e\u3067\u3001.NET Core \u5c02\u7528\u306a\u306e\u304b\uff1f\u4f9d\u5b58\u95a2\u4fc2\u304c<\/p>\n<ul>\n<li>Microsoft.EntityFrameworkCore.Sqlite \u306f\u3001SQLitePCLRaw.bundle_green<\/li>\n<li>Microsoft.EntityFrameworkCore.Sqlite.Core\u306f\u3001Microsoft.Data.Sqlite.Core<\/li>\n<\/ul>\n<p>\u3068\u306a\u3063\u3066\u3044\u308b\u3002<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\r\npublic partial class RedmineEntities : DbContext\r\n{\r\n    public RedmineEntities()\r\n    {\r\n\r\n    }\r\n    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)\r\n    {\r\n        base.OnConfiguring(optionsBuilder);\r\n\r\n        var fname = &amp;quot;redmine.sqlite3&amp;quot;;\r\n        var docs = System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments);\r\n        var path = System.IO.Path.Combine(docs, fname);\r\n\r\n        optionsBuilder.UseSqlite($&amp;quot;Data Source={path}&amp;quot;);\r\n    }\r\n\r\n    public DbSet&lt;projects&gt; projects { get; set; }\r\n    public DbSet&lt;issues&gt; issues { get; set; }\r\n}\r\n<\/pre>\n<p>\u8a66\u3057\u306b\u3001MainPage\u30af\u30e9\u30b9\u306e\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u3067\u3001SQLite\u306b\u63a5\u7d9a\u3057\u3001ListView \u306b\u8a2d\u5b9a\u3059\u308b\u3002<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\r\npublic partial class MainPage : ContentPage\r\n{\r\n\tpublic MainPage()\r\n\t{\r\n\t\tInitializeComponent();\r\n        \/\/ redmine.sqlite3 \u3092\u30ed\u30fc\u30c9\u3059\u308b\r\n        _ent = new RedmineModel.RedmineEntities();\r\n        this.lv.ItemsSource = _ent.issues.ToList();\r\n\t}\r\n\r\n    RedmineModel.RedmineEntities _ent;\r\n\t...\r\n}\r\n<\/pre>\n<p>\u3061\u306a\u307f\u306b\u3001XAML \u306f\u3053\u3093\u306a\u611f\u3058\u3002<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;ContentPage.Content&gt;\r\n    &lt;StackLayout&gt;\r\n        &lt;ListView x:Name=&amp;quot;lv&amp;quot; VerticalOptions=&amp;quot;FillAndExpand&amp;quot; HasUnevenRows=&amp;quot;true&amp;quot; ItemSelected=&amp;quot;OnItemSelected&amp;quot;&gt;\r\n            &lt;ListView.ItemTemplate&gt;\r\n                &lt;DataTemplate&gt;\r\n                    &lt;ViewCell&gt;\r\n                        &lt;StackLayout Padding=&amp;quot;10&amp;quot;&gt;\r\n                            &lt;Label Text=&amp;quot;{Binding id}&amp;quot; LineBreakMode=&amp;quot;NoWrap&amp;quot; Style=&amp;quot;{DynamicResource ListItemTextStyle}&amp;quot; FontSize=&amp;quot;16&amp;quot;\/&gt;\r\n                            &lt;Label Text=&amp;quot;{Binding subject}&amp;quot; LineBreakMode=&amp;quot;NoWrap&amp;quot; Style=&amp;quot;{DynamicResource ListItemDetailTextStyle}&amp;quot; FontSize=&amp;quot;13&amp;quot;\/&gt;\r\n                        &lt;\/StackLayout&gt;\r\n                    &lt;\/ViewCell&gt;\r\n                &lt;\/DataTemplate&gt;\r\n            &lt;\/ListView.ItemTemplate&gt;\r\n        &lt;\/ListView&gt;\r\n    &lt;\/StackLayout&gt;\r\n&lt;\/ContentPage.Content&gt;\r\n<\/pre>\n<p>\u5b9f\u884c\u3059\u308b\u3068\u3001\u3053\u3093\u306a\u98a8\u306b\u306a\u308b\u3002<\/p>\n<p><a href=\"http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2018\/05\/dworkblogimage20180523_02org.jpg\"><img decoding=\"async\" src=\"http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2018\/05\/dworkblogimage20180523_02thum.jpg\" border=\"0\" \/><\/a><\/p>\n<h2>\u30ed\u30fc\u30ab\u30eb\u306aSQLite\u30d5\u30a1\u30a4\u30eb\u3092\u4f55\u306b\u4f7f\u3046\u304b\uff1f<\/h2>\n<p>\u30b9\u30de\u30db\u3067\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306b\u7e4b\u3052\u308b\u306e\u3060\u304b\u3089\u3001Azure\u304bWeb API\u3067\u3044\u3044\u3088\u3046\u306a\u6c17\u3082\u3059\u308b\u306e\u3060\u304c\u3001\u3044\u304f\u3064\u304b\u5185\u90e8\u3067\u30ed\u30fc\u30ab\u30eb\u306a\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3068\u3057\u3066\u6301\u3063\u3066\u304a\u3044\u305f\u307b\u3046\u304c\u826f\u3044\u30d1\u30bf\u30fc\u30f3\u304c\u8003\u3048\u3089\u308c\u308b\u3002<\/p>\n<ul>\n<li>\u30b9\u30de\u30db\u3067\u5916\u90e8\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306b\u7e4b\u304c\u3089\u306a\u3044\u3001\u3042\u308b\u3044\u306f\u6975\u7aef\u306b\u9045\u3044\u5834\u5408<\/li>\n<li>\u30b9\u30de\u30db\u3092\u793e\u5185WiFi\u306e\u307f\u306b\u9650\u308b\u5834\u5408<\/li>\n<li>\u30bf\u30d6\u30ec\u30c3\u30c8\u3092\u30de\u30cb\u30e5\u30a2\u30eb\u3063\u307d\u304f\u4f7f\u3046<\/li>\n<\/ul>\n<p>\u4eca\u56de SQLite \u306b\u6301\u3063\u3066\u304d\u305f\u306e\u306f redmine \u306a\u306e\u3067\u3001\u3042\u307e\u308a\u610f\u5473\u306f\u306a\u3044\u306e\u3060\u304c\u3001wordpress \u306e\u30c7\u30fc\u30bf\u3092\u30b9\u30de\u30db\u306e SQLite \u306b\u6301\u3063\u3066\u304d\u3066\u3001\u5358\u4f53\u3067\u30d6\u30e9\u30a6\u30b8\u30f3\u30b0\u3067\u304d\u308b\u3088\u3046\u306b\u3059\u308b\u3068\u96fb\u5b50\u66f8\u7c4d\u3063\u307d\u304f\u4f7f\u3048\u308b\u306e\u3067\u306f\u306a\u3044\u304b\uff1f\u3068\u601d\u3063\u305f\u308a\u3002<br \/>\n\u307e\u3042\u3001\u3072\u3068\u307e\u305a\u3001\u975e\u30af\u30e9\u30a6\u30c9\u306a\u30b9\u30bf\u30f3\u30c9\u30a2\u30ed\u30fc\u30f3\u74b0\u5883\u3067\u30b9\u30de\u30db\u3092\u4f7f\u3046\u6280\u306b\u306a\u308b\u3002<\/p>\n<h2>\u30b5\u30f3\u30d7\u30eb\u30b3\u30fc\u30c9<\/h2>\n<p><a href=\"https:\/\/github.com\/moonmile\/sample-sqlite-ef\">github sample-sqlite-ef<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Xamarin.Forms\u3067SQLite\u3092\u6271\u3046\u8a18\u4e8b\u306f\u3044\u304f\u3064\u304b\u3042\u308b\u306e\u3060\u3051\u3069\u3001.NET Standard 2.0\u3092\u6271\u3063\u305f\u3082\u306e\u306f\u3001\u4ee5\u4e0b\u3057\u304b\u306a\u304b\u3063\u305f\u306e\u3067\u30e1\u30e2\u4ee3\u308f\u308a\u306b\u8a18\u9332\u3057\u3066\u304a\u304f\u3002 Xamarin.Forms, NET Stand &hellip; <a href=\"http:\/\/www.moonmile.net\/blog\/archives\/9150\">\u7d9a\u304d\u3092\u8aad\u3080 <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[3,88,62],"tags":[],"class_list":["post-9150","post","type-post","status-publish","format-standard","hentry","category-dev","category-sqlite","category-xamarin"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/posts\/9150","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/comments?post=9150"}],"version-history":[{"count":7,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/posts\/9150\/revisions"}],"predecessor-version":[{"id":9157,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/posts\/9150\/revisions\/9157"}],"wp:attachment":[{"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/media?parent=9150"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/categories?post=9150"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/tags?post=9150"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}