MvvmCross.UWP 通过 Entity Framework Core 操作 Sqlite

原文链接:https://docs.microsoft.com/en-us/ef/core/get-started/uwp/getting-started

环境要求:

  • Windows 10 Fall Creators Update (10.0.16299.0)

  • .NET Core 2.0.0 SDK or later.

  • Visual Studio 2017 version 15.4 or later with the Universal Windows Platform Development workload.

步骤:

  • 新建项目: Class Library (.NET Standard)
  • NuGet 添加包: Microsoft.EntityFrameworkCore.SqliteMicrosoft.EntityFrameworkCore.Tools
    或者通过 程序包管理控制台
    Install-Package Microsoft.EntityFrameworkCore.Sqlite
    Install-Package Microsoft.EntityFrameworkCore.Tools
  • 修改.csproj文件netstandard2.0 替换为 netcoreapp2.0;netstandard2.0
    (若之后操作失败 该语句下面额外添加 2.0.3)
  • 添加一个Model.cs 类
using Microsoft.EntityFrameworkCore;
using System.Collections.Generic;

namespace EFGetStarted.UWP
{
    public class BloggingContext : DbContext
    {
        public DbSet Blogs { get; set; }
        public DbSet Posts { get; set; }

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseSqlite("Data Source=blogging.db");
        }
    }

    public class Blog
    {
        public int BlogId { get; set; }
        public string Url { get; set; }

        public List Posts { get; set; }
    }

    public class Post
    {
        public int PostId { get; set; }
        public string Title { get; set; }
        public string Content { get; set; }

        public int BlogId { get; set; }
        public Blog Blog { get; set; }
    }
}
  • 在当前解决方案中添加一个UWP项目
    目标版本至少为Windows 10 Fall Creators Update (10.0; build 16299.0)
  • 将Model项目 设置为默认启动项目和程序包控制台默认项目
  • 程序包控制台运行 Add-Migration MyFirstMigration
    (若没有生成 Migrations 文件夹 跳转到步骤 修改.csproj 文件)
  • 项目引用:对于MvvmCross 直接在Core项目引用Model项目即可
  • 数据库迁移(在数据库使用前运行)
using Microsoft.EntityFrameworkCore;

            using (var db = new BloggingContext())
            {
                db.Database.Migrate();
            }

  • 数据库添加
 using (var db = new BloggingContext())
            {
                var blog = new Blog { Url = NewBlogUrl.Text };
                db.Blogs.Add(blog);
                db.SaveChanges();
             }

你可能感兴趣的:(MvvmCross.UWP 通过 Entity Framework Core 操作 Sqlite)