伴随着ASP.NET Core 1.0发布的还有Entity Framework Core 1.0; 官方文档链接:https://docs.efproject.net/en/latest/platforms/aspnetcore/index.html

跟以往一样,Entity Framework 同样两种模式:Code First(即Database尚未创建)和Database First(即Database已然存在)。上述链接中有针对两种模式的节点。

记录一下使用EF过程中(Database First模式,还是习惯SSMS中自己创建Table和View等)遇到的问题:

1) Scaffold-Dbcontext一直使用失败

首先,Scaffold-Dbcontext是一个Package Management Console命令(针对Visual Studio用户,非Visual Studio用户可以参考.NET Core CLI指令https://docs.efproject.net/en/latest/cli/dotnet.html),可以使用-Verbose来使其dump具体的错误信息;

其次,最新的Entity Framework 1.0 RC2依赖于Powershell 5.0,所以会导致许多问题。官方文档(https://docs.efproject.net/en/latest/platforms/aspnetcore/existing-db.html)虽然提到RC2一个已知问题,但是其链接是失效的!倒是Github上的Issue 5376 https://github.com/aspnet/EntityFramework/issues/5376记录了详细的讨论和解决方法。

官方的已知RC2问题的有效链接:https://docs.efproject.net/en/latest/cli/powershell.html#error-the-expression-after-in-a-pipeline-element-produced-an-object-that-was-not-valid

PowerShell 5.0的下载链接:https://www.microsoft.com/en-us/download/details.aspx?id=50395

我个人很推崇的解决方法是:

直接键入Scaffold-Dbcontext,安装其提示一步步输入Connection String和Provider。唯一的遗憾是,在这种方法下输入Connection String时无法Copy/Paster,只能自己一个一个字符敲进去,略悲催。

2) 已支持的Provider:

除了标配的SQL Server之外(Azure SQL可以使用SQL Server),Entity Framework Core 1.0还提供了别的Provider。参阅:https://docs.efproject.net/en/latest/providers/index.html

3) 更新Dbcontext

迭代式的开发必然会导致同步问题,Dbcontext跟真实Database的Schema之间也一样。譬如增加了一张新Table,需要同步到Dbcontext中。个人推荐的做法是,继续使用Scaffold-Dbcontext ,配上-Force选项。

4) 更多的Package Management Console指令参阅:https://docs.efproject.net/en/latest/cli/powershell.html

是为之记。

Alva Chien
2016.6.1

ASP.NET Core 1.0: Using Entity Framework Core的更多相关文章

  1. ASP.NET Core 1.0、ASP.NET MVC Core 1.0和Entity Framework Core 1.0

    ASP.NET 5.0 将改名为 ASP.NET Core 1.0 ASP.NET MVC 6  将改名为 ASP.NET MVC Core 1.0 Entity Framework 7.0    将 ...

  2. [转帖]2016年时的新闻:ASP.NET Core 1.0、ASP.NET MVC Core 1.0和Entity Framework Core 1.0

    ASP.NET Core 1.0.ASP.NET MVC Core 1.0和Entity Framework Core 1.0 http://www.cnblogs.com/webapi/p/5673 ...

  3. Professional C# 6 and .NET Core 1.0 - 38 Entity Framework Core

    本文内容为转载,重新排版以供学习研究.如有侵权,请联系作者删除. 转载请注明本文出处:Professional C# 6 and .NET Core 1.0 - 38 Entity Framework ...

  4. [转]ASP.NET Core 1.0: Using Entity Framework Core 1.0 - Transaction

    本文转自:http://blog.csdn.net/alvachien/article/details/51576961 跟Entity Framework之前的版本不同,Class DbContex ...

  5. ASP.NET Core 1.0: Using Entity Framework Core 1.0 - Transaction

    跟Entity Framework之前的版本不同,Class DbContext不再有AcceptAllChanges()方法. 使用Transaction需要使用DbContext中的Databas ...

  6. 请问在 .NET Core 中如何让 Entity Framework Core 在日志中记录由 LINQ 生成的SQL语句?

    using dotNET.Core; using Microsoft.Extensions.Logging; using System; using System.Collections.Generi ...

  7. Entity Framework Core 练习参考

    项目地址:https://gitee.com/dhclly/IceDog.EFCore 项目介绍 对 Microsoft EntityFramework Core 框架的练习测试 参考文档教程 官方文 ...

  8. 全自动迁移数据库的实现 (Fluent NHibernate, Entity Framework Core)

    在开发涉及到数据库的程序时,常会遇到一开始设计的结构不能满足需求需要再添加新字段或新表的情况,这时就需要进行数据库迁移. 实现数据库迁移有很多种办法,从手动管理各个版本的ddl脚本,到实现自己的mig ...

  9. ASP.Net Core项目在Mac上使用Entity Framework Core 2.0进行迁移可能会遇到的一个问题.

    在ASP.Net Core 2.0的项目里, 我使用Entity Framework Core 2.0 作为ORM. 有人习惯把数据库的连接字符串写在appSettings.json里面, 有的习惯写 ...

随机推荐

  1. SDL建设-三方依赖库扫描

    说明: 本文首发自 https://www.secpulse.com/archives/73373.html,转载请注明出处. 文章综述 本文主要介绍Dependency-Check工具的工作原理和使 ...

  2. 为什么阿里巴巴Java开发手册中不建议在循环体中使用+进行字符串拼接?

    之前在阅读<阿里巴巴Java开发手册>时,发现有一条是关于循环体中字符串拼接的建议,具体内容如下: 那么我们首先来用例子来看看在循环体中用 + 或者用 StringBuilder 进行字符 ...

  3. 使用Prometheus监控SpringBoot应用

    通过之前的文章我们使用Prometheus监控了应用服务器node_exporter,数据库mysqld_exporter,今天我们来监控一下你的应用.(本文以SpringBoot 2.1.9.REL ...

  4. Unity的学习笔记(射线检测)

    首先,射线检测的API是这样的,网上找了一下,这个图片看得很清楚: 接下来是自己使用这个进行测试 using System.Collections; using System.Collections. ...

  5. 高性能Web动画和渲染原理系列(3)——transform和opacity为什么高性能

    示例代码托管在:http://www.github.com/dashnowords/blogs 博客园地址:<大史住在大前端>原创博文目录 华为云社区地址:[你要的前端打怪升级指南] [T ...

  6. Arduino学习笔记① 初识Arduino

    1.前言     近段时间,博主陆续更新了ESP8266学习笔记,主要开发平台是Arduino.但是,对于很多无基础的初学者来说,甚至不了解Arduino是什么.因此,博主决定加入一个Arduino学 ...

  7. 基于Opentracing+Jaeger全链路灰度调用链

    当网关和服务在实施全链路分布式灰度发布和路由时候,我们需要一款追踪系统来监控网关和服务走的是哪个灰度组,哪个灰度版本,哪个灰度区域,甚至监控从Http Header头部全程传递的灰度规则和路由策略.这 ...

  8. 深入理解JavaScript中的作用域、作用域链和闭包

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/qappleh/article/detai ...

  9. OptimalSolution(3)--链表问题(1)简单

    单链表Node节点类 public class Node { public int val; public Node next; public Node(int val) { this.val = v ...

  10. 设计模式(二)Adapter模式

    Adapter模式也被成为Wrapper模式.适配器模式用于填补“现有的程序”和“所需的程序”之间差异的设计模式. Adapter模式有两种,即使用继承的适配器和使用委托的适配器. 1.使用继承的适配 ...