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

以前没注意图片,所以我今天发现的时候,显示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. 9.Java三大版本以及JDK,JRE,JVM简单介绍

    Write Once,Run Anywhere. JavaSE:标准版(桌面程序,控制台开发...),是Java的基础和核心. JavaME:嵌入式开发(手机,小家电...),现在基本不用已经过时. ...

  2. .net mvc Bundle 自己配置

    遇到了个坑 来和大家分享一下 1.一个空的mvc项目需要引用 System.Web.Optimization 2.然后nuget添加 microsoft ASP.NET WEB OPTIMIZATIO ...

  3. 资源| 学习视频库-永久有效,持续更新!附赠java面试汇总

    每天进步一丢丢,连接梦与想 我们总是羡慕他人的光芒,却忘记自己也会发光 声明 资源来自于网络,小编只是资源的搬运工,若有侵权,联系小编即删. 期待已久的学习视频库来啦! 经过小编多日整理,整理了1.5 ...

  4. Java lambda 表达式常用示例

    实体类 package com.lkb.java_lambda.dto; import lombok.Data; /** * @program: java_lambda * @description: ...

  5. Cassandra2.2.10安装过程

    1. 2.安装JVM 3.OS环境配置: 关闭防火墙:service iptables stop vi /etc/sysctl.conf vm.zone_reclaim_mode=0 vm.max_m ...

  6. 简单总结关于阿里云CDN的知识

    CDN概念剖析 这里解释一下几个概念,摘自阿里云官方文档. 源站: 源站决定了回源时,请求到哪个IP 回源host:回源host决定回源请求访问到该IP上的哪个站点 例子1:源站是域名 源站为 www ...

  7. Docker底层架构之网络实现

    前言 Docker 的网络实现其实就是利用了 Linux 上的网络命名空间和虚拟网络设备(特别是 vethpair). 基本原理 首先,要实现网络通信,机器需要至少一个网络接口(物理接口或虚拟接口)来 ...

  8. 大数据之Kafka史上最详细原理总结

    Kafka Kafka是最初由Linkedin公司开发,是一个分布式.支持分区的(partition).多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实 ...

  9. kaggle实战之 bag of words meet bag of poopcorn

    由于编辑器总是崩溃,我只能直接把代码贴上了. import numpy #first step import pandas as pd import numpy as np # Read data f ...

  10. Ecplise-SVN插件异常: 由于目标计算机积极拒绝,无法连接。

    在Ecplise中,选择team->share project时,出现以下异常 由于目标计算机积极拒绝,无法连接. svn: Unable to connect to a repository ...