为啥写这篇帖子呢?其实是因为翻微软的文档中心偶然翻到的,于是就出于好奇就试试了,看看用着怎么样。

以前没注意图片,所以我今天发现的时候,显示EF Core3.1支持standard2.0,于是就想试试UWP用着会不会出问题,之前有的网友说2.1的standard目前UWP用不了。

ef core具体用法 文档中心都有文档教程,首先是先创建一个 Standard2.0的项目,然后创建一个数据上下文,和一些模型。

dotnet控制台项目使用ef core的使用方法。

上面的帖子是官方的使用方法,下图是我的项目的,和大多数网友的没什么区别。

standard项目名字叫EFcore就是创建了model 类,和一个上下文,必装的包如下:

Microsoft.EntityFrameworkCore.Sqlite 这个包,个人理解应该是主要用来连接数据库的,可以被UWP项目引用进而操作数据库。

然后我们需要一个dotnet core的控制台程序,用来创建迁移和执行迁移,要是用过asp.net core的大家都知道 其实用ef core很方便,一个项目就可以创建迁移和执行迁移。

上图左边的图上我们是给文件路径传了一个路径,等会再说为什么给个路径,右边就是多装了一个库Microsoft.EntityFrameworkCore.Tools,这个主要是执行迁移指令的。下图就是在包管理控制台执行迁移指令

Add-Migration InitialCreate 这个是创建数据库的表的骨架

Update-Database 这就是把表给生成 文档中心都有写

控制台程序设为启动程序,包管理那里默认项目为standard项目,上面做完把控制台程序执行完都很正常,说明基础已经做好。然后新建个uwp项目,用来测试uwp使用会不会出问题。

图上是有报错,报错提示不能打开数据库文件,去git上找了原因是因为,在数据库上下文写的数据库文件名不是绝对路径,所以会导致找不到数据库,然后改了代码以后,发现正常了。

 protected async override void OnNavigatedTo(NavigationEventArgs e)
{
var dbFile = await ApplicationData.Current.LocalFolder.TryGetItemAsync("blogging.db") as StorageFile;
if (null == dbFile || SystemInformation.IsFirstRun)
{
// first time ... copy the .db file from assets to local folder
var localFolder = ApplicationData.Current.LocalFolder;
var originalDbFileUri = new Uri("ms-appx:///Assets/blogging.db");
var originalDbFile = await StorageFile.GetFileFromApplicationUriAsync(originalDbFileUri);
if (null != originalDbFile)
{ dbFile = await originalDbFile.CopyAsync(localFolder, "blogging.db", NameCollisionOption.ReplaceExisting); }
}
try
{
using (var db = new BloggingContext())
{
//这里是传绝对路径给的数据上下文
db.DbFilePath = dbFile.Path;
db.Database.Migrate();
//// Create
db.Add(new Blog { Url = "http://blogs.msdn.com/adonet", TestUrl = "http://blogs.msdn.com/adonet" });
db.SaveChanges();
// Read
var blog = db.Blogs
.OrderBy(b => b.BlogId)
.ToList().Select(b => b.TestUrl);
SQLite.ItemsSource = blog;
}
}
catch (Exception ex)
{ } }

具体好像就发现这一点和以前使用的区别,其他的好像都正常使用。下图的listview上半部分为什么没数据呢?是因为我测试了db.Database.Migrate();能不能正常迁移表新添的字段。所以上面的旧字段没值而已。

得出结论,对UWP支持还算良好,目测以后的大一统时代各种支持应该会更好,所以UWP应该算是没死掉的。

项目代码和参考的博客文章如下:有说的不对的请大家予以批评

博客项目代码地址

参考博客地址

有启发的git讨论地址

如果转载请注明出处(前提有人愿意转载

最新版的EF Core对UWP支持的怎么样的更多相关文章

  1. EF Core 2.1 支持数据库一对一关系

    在使用EF Core和设计数据库的时候,通常一对多.多对多关系使用得比较多,但是一对一关系使用得就比较少了.最近我发现实际上EF Core很好地支持了数据库的一对一关系. 数据库 我们先来看看SQL ...

  2. ASP.NET Core 开发-Entity Framework (EF) Core 1.0 Database First

    ASP.NET Core 开发-Entity Framework Core 1.0 Database First,ASP.NET Core 1.0 EF Core操作数据库. Entity Frame ...

  3. EF Core 1.0中使用Include的小技巧

    (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:由于EF Core暂时不支持Lazy Loading,所以利用Include来加载额外 ...

  4. .net core Entity Framework 与 EF Core

    重点讲 Entity Framework Core ! (一)Entity Framework 它是适用于.NET 的对象关系映射程序 (ORM),现在的EF6已经是久经沙场,并经历重重磨难,获得一致 ...

  5. EF Core中执行Sql语句查询操作之FromSql,ExecuteSqlCommand,SqlQuery

    一.目前EF Core的版本为V2.1 相比较EF Core v1.0 目前已经增加了不少功能. EF Core除了常用的增删改模型操作,Sql语句在不少项目中是不能避免的. 在EF Core中上下文 ...

  6. 把旧系统迁移到.Net Core 2.0 日记(10) -- EF core 和之前版本多对多映射区别

    EF Core 现在不支持多对多映射,只能做2个一对多映射. 比如Product和Category 我现在定义Product和Category是多对多关系. 那么实体定义如下: public clas ...

  7. EF Core 通过延迟加载获取导航属性数据

    EF 6及以前的版本是默认支持延迟加载(Lazy Loading)的,早期的EF Core中并不支持,必须使用Include方法来支持导航属性的数据加载. 当然在EF Core 2.1及之后版本中已经 ...

  8. .net core EF Core 视图的应用

    由之前的一篇文章<.net core Entity Framework 与 EF Core>我们都已经知道 EF Core 增加了许多特性,并且性能上也有了很大的提升. 但是EF Core ...

  9. .net core EF Core 调用存储过程

    在这里,我们将尝试去学习一下 .net core EF Core 中调用存储过程. 我们知道,EF Core 是不支持直接调用存储过程的,那它又提供了什么样的方式去执行存储过程呢?有如下方法: 1.F ...

随机推荐

  1. 创建Account控制器 安全性与收尾工作 精通ASP-NET-MVC-5-弗瑞曼

  2. Python学习,第四课 - 字符串相关操作

    这次主要说说Python中字符串的使用方法详解 capitalize 首字母大写 print('chengshou'.capitalize()) #输出结果:Chengshou title 修改成标题 ...

  3. 龙芯 3B1500 Fedora28 安装笔记

    版权声明:原创文章,未经博主允许不得转载 龙芯 3A4000 已经发布,十年前的 3B1500 早就落伍了.但我还是打算把它作为寒假刷 ACM 题的主力机 并将此当作年后收到 4000 的预习. 龙芯 ...

  4. 远程桌面软件RDCMan汉化版

    自己汉化的远程桌面控制软件RDCMan--Remote Desktop Connection Manager(RDCMan) v2.7 简体中文汉化版. 介绍 Remote Desktop Conne ...

  5. centos7下redis安全相关

    Centos7下redis安全相关 在使用云服务器时,安装的redis3.0+版本都关闭了protected-mode,因而都遭遇了挖矿病毒的攻击,使得服务器99%的占用率!! 因此我们在使用redi ...

  6. delphiXE开发蓝牙BLE4.0程序时遇到的notification问题

    IDE环境delphiXE8 蓝牙硬件ST17H26 service:0xfee7 chareter:0xfec9 const u16 my_OEMServiceUUID=0xfee7;const u ...

  7. Docker扩展内容之容器开机自启

    前言 部署项目服务器时,为了应对停电等情况影响正常web项目的访问,会把Docker容器设置为开机自动启动. 在使用docker run启动容器时,使用--restart参数来设置,具体参数如下详解 ...

  8. Hello,world!一切的开始

    普及知识 当我们准备开发Java程序时,我们需要两样基础的工具--JDK与IDE.在这里需要解释一下什么是JDK还有IDE.JDK的全称是Java Development kit,即Java开发工具集 ...

  9. 实验19:Frame-Relay

    实验16-1. 帧中继多点子接口 Ø    实验目的通过本实验,读者可以掌握如下技能:(1) 帧中继的基本配置(2) 帧中继的静态映射(3) 多点子接口的应用Ø     实验拓扑 实验步骤n  步骤1 ...

  10. webdriver高级应用 -无人干预地自动上传文件

    本节主要介绍通过程序代码无人干预地上传文件附件,并进行提交操作. 1.使用send_keys方法上传文件 #!/usr/bin/env python # -*- coding: utf-8 -*- # ...