伴随着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. HTML 元素居中的方法

    网址:http://www.cnblogs.com/asqq/archive/2012/04/09/2438745.html 1. 元素的定位的方法选择 :absolute . 2. 给定元素的宽和高 ...

  2. 浑身尖刺的服务可用性守护者——hystrix熔断器实践记录

    netflix公司的产品hystrix(长满刺的豪猪),在高可用目标下具有一定熔断.限流.降级的作用.这里主要写一些自己在使用时的问题解决思路,原理请自行理解,包括线程池与信号量模式等. 注意三个参数 ...

  3. vue-cli3 关闭一直运行的 /sockjs-node/info?t= ...

    首先 sockjs-node 是一个JavaScript库,提供跨浏览器JavaScript的API,创建了一个低延迟.全双工的浏览器和web服务器之间通信通道. 本地项目运行就会自动去访问:http ...

  4. css布局两端固定中间自适应

    第一种:采用浮动 1.1首先来看一下网上一个哥们给的代码 <body> <div class="left">左</div> <div cl ...

  5. SpringMVC重点知识总结

    SpringMVC总结 1. SpringMVC简介 MVC即模型-视图-控制器(Model-View-Controller) Spring Web MVC是一种基于Java的实现了Web MVC设计 ...

  6. Hadoop 在 windows 7 64位的配置(二)|非cygwin

    第一次使用需要 hdfs namenode -format 一键启动和关闭hadoop 新建文本文档 然后改名 start-hadoop.cmd 里面的内容 @echo off cd /d %HADO ...

  7. LNMP与LAMP的工作原理

    LAMP的实现原理 LAMP=Linux+Apache+Mysql+PHP.​#工作原理:浏览器向服务器发送http请求,服务器 (Apache) 接受请求,由于php作为Apache的组件模块也会一 ...

  8. vue-cli3安装jQuery

    注:vue-cli3.0 没有了 webpack.config.js 配置文件,取而代之的是集合在 vue.config.js文件 内进行配置 默认已经安装好vue-cli3.0项目 step1:命令 ...

  9. 时针.html

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  10. vue 2.0 点击添加class,同时删除同级class

    <template> <div class="n-header"> <ul class="title-wrapper"> & ...