ASP.NET Core 1.0: Using Entity Framework Core
伴随着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的更多相关文章
- 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 将 ...
- [转帖]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 ...
- Professional C# 6 and .NET Core 1.0 - 38 Entity Framework Core
本文内容为转载,重新排版以供学习研究.如有侵权,请联系作者删除. 转载请注明本文出处:Professional C# 6 and .NET Core 1.0 - 38 Entity Framework ...
- [转]ASP.NET Core 1.0: Using Entity Framework Core 1.0 - Transaction
本文转自:http://blog.csdn.net/alvachien/article/details/51576961 跟Entity Framework之前的版本不同,Class DbContex ...
- ASP.NET Core 1.0: Using Entity Framework Core 1.0 - Transaction
跟Entity Framework之前的版本不同,Class DbContext不再有AcceptAllChanges()方法. 使用Transaction需要使用DbContext中的Databas ...
- 请问在 .NET Core 中如何让 Entity Framework Core 在日志中记录由 LINQ 生成的SQL语句?
using dotNET.Core; using Microsoft.Extensions.Logging; using System; using System.Collections.Generi ...
- Entity Framework Core 练习参考
项目地址:https://gitee.com/dhclly/IceDog.EFCore 项目介绍 对 Microsoft EntityFramework Core 框架的练习测试 参考文档教程 官方文 ...
- 全自动迁移数据库的实现 (Fluent NHibernate, Entity Framework Core)
在开发涉及到数据库的程序时,常会遇到一开始设计的结构不能满足需求需要再添加新字段或新表的情况,这时就需要进行数据库迁移. 实现数据库迁移有很多种办法,从手动管理各个版本的ddl脚本,到实现自己的mig ...
- ASP.Net Core项目在Mac上使用Entity Framework Core 2.0进行迁移可能会遇到的一个问题.
在ASP.Net Core 2.0的项目里, 我使用Entity Framework Core 2.0 作为ORM. 有人习惯把数据库的连接字符串写在appSettings.json里面, 有的习惯写 ...
随机推荐
- Linux命令行与shell脚本
一.Linux简介 1.linux系统内部结构 划分为以下四部分:linux内核.GNU工具组件.图形化桌面环境.应用软件. 2.Linux系统的核心——内核 内核基本负责以下四项主要功能:系统内存管 ...
- Java编程思想——第17章 容器深入研究 读书笔记(三)
七.队列 排队,先进先出. 除并发应用外Queue只有两个实现:LinkedList,PriorityQueue.他们的差异在于排序而非性能. 一些常用方法: 继承自Collection的方法: ad ...
- Web渗透之mssql差异备份getshell
简介 差异备份数据库得到webshell.在sql server 里dbo和sa权限都有备份数据库权限,我们可以把数据库备份称asp文件,这样我们就可以通过mssqlserver的备份数据库功能生成一 ...
- PHP 奇葩的debug_zval_dump的输出
有段代码: $a1 = 'Hello world!'; $a2 = &$a1; echo "test1 :"; debug_zval_dump($a1); $b1 = 'H ...
- 利用WinRM实现内网无文件攻击反弹shell
利用WinRM实现内网无文件攻击反弹shell 原文转自:https://www.freebuf.com/column/212749.html 前言 WinRM是Windows Remote Mana ...
- 异步IO实例
#include <stdio.h> #include <stdlib.h> #include <errno.h> #include <string.h> ...
- jmeter-控制业务比例
方式一: 多线程组 缺点:由于各事务相应时间一般不一致,故只能粗略的控制业务占比 实例:待补充
- C#发送电子邮件(SMTP)及outlook.com账号之概要
这是关于c#发送电子邮件(SMTP)的技术笔记,以”简报“形式呈现. 因为最后成功通过outlook.com发送了邮件,所以,我觉得还是有必要 记录一下其中的要点. 一.技术核心 .net Frame ...
- oracle中创建用户、角色、权限简单使用
Oracle关于用户.权限.角色简单使用 创建数据库用户(在system用户下)create user 用户名 identified by 密码; 授权grant 权限名 to 用户名; 查看当前用户 ...
- 百万年薪python之路 -- 递归
递归(每当有一个函数被递归调用,就应该要有一个返回值,才能正常把递归的返回值'归'回来) 一个正经的递归: 1.不断调用自己本身 2.有明确的结束条件 递归注重于"一递 一归&quo ...