前言 不知道大家是否和我有同样的问题: 一般在数据库的设计阶段,会制定一些默认的规则,其中有一条硬性规定就是一定不要对任何表中的数据执行delete硬删除操作,因为每条数据对我们来说都是有用的,并且是值得分析的. 所以我们一般会在每张表中加一个"是否删除IsDeleted"或者"是否有效IsValid"的字段,来标识这条数据的状态是否可用! 那么疑问来了,在写SQL或者Linq的时候我们到底是要加上这个条件还是忽略这个条件呢?答案当然是根据实际业务需求和情况来决定.…
前段时间听过一个关于使用ASP.NET Core建立项目的视频.其中使用EF Core映射到数据库的部分是按部就班地学习.今天自己建立项目时,有些步骤已经有一些遗忘.所以写下这篇文章,顺便理清思路. 新建项目后: 1.Models文件夹下建立实体类,如User public class User { public int Id { get; set; } public int Account { get; set; } public int Password { get; set; } } 2.…
⒈创建数据库,在数据中执行以下脚本. CREATE DATABASE Blogging; USE Blogging; CREATE TABLE Blog ( BlogId int not null PRIMARY key auto_increment, Url text not null ); CREATE TABLE Post ( PostId int NOT NULL PRIMARY key auto_increment, BlogId int NOT NULL, Content text,…
⒈添加依赖 MySql.Data.EntityFrameworkCore ⒉在appsettings.json配置文件中配置数据库连接字符串 { "Logging": { "LogLevel": { "Default": "Warning" } }, "ConnectionStrings": { "MySqlConnection": "server=localhost;port…
最近一直在捣鼓.NET Core方面的东西,顺便写下点东西记录下 1.打开vs2017,新建一个项目 2.vs会自动生成一个项目,然后打开NuGet搜索MySql.Data.EntityFrameworkCore下载 3.然后在Models下面新建一个Student类,然后再新建一个类继承DbContext类 using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; u…
1.参考文档说修改项目文件添加,就得这么做,不然会报错 <ItemGroup> <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0" /> </ItemGroup> https://www.cnblogs.com/Starts_2000/p/mysql-efcore20-codefirst-dbfir…
前言 随着互联网的的高速发展,大多数的公司由于一开始使用的传统的硬件/软件架构,导致在业务不断发展的同时,系统也逐渐地逼近传统结构的极限. 于是,系统也急需进行结构上的升级换代. 在服务端,系统的I/O是很大的瓶颈.其中数据库的I/O最容易成为限制系统效率的一环.在优化数据库I/O这一环中,可以从优化系统调用数据库效率.数据库自身效率等多方面入手. 一般情况下,通过升级数据库服务器的硬件是最容易达到的.但是服务器资源不可能无限扩大,于是从调用数据库的效率方面入手是目前主流的优化方向. 于是读写分…
前言 前段时间写了EF core实现多租户的文章,实现了根据数据库,数据表进行多租户数据隔离. 今天开始写按照Schema分离的文章. 其实还有一种,是通过在数据表内添加一个字段做多租户的,但是这种模式我不打算讲了. 如果大家看了文章感觉完全衔接不上,可以先看看前面的系列文章: Asp.net core下利用EF core实现从数据实现多租户(1) Asp.net core下利用EF core实现从数据实现多租户(2) : 按表分离 EF core (code first) 通过自定义 Migr…
在EF Core 5中,有很多方式可以窥察工作流程中发生的事情,并与该信息进行交互.这些功能点包括日志记录,拦截,事件处理程序和一些超酷的最新出现的调试功能.EF团队甚至从Entity Framework的第一个版本中恢复了一些有用的旧的功能.本博文带你更深入地研究访问EF Core 5的一些元数据和其有趣的使用方式. 1.将EF的ToTraceString移植为EF Core的ToQueryString 这是回忆杀. 在Entity Framework的第一个迭代版本中,没有内置的日志记录.但…
Entity Framework Core in Action Entityframework Core in action是 Jon P smith 所著的关于Entityframework Core 书籍.原版地址. 是除了官方文档外另一个学习EF Core的不错途径, 书中由浅入深的讲解的EF Core的相关知识.因为没有中文版,所以本人对其进行翻译. 预计每两天一篇更新 PS: 翻译难免限于本人水平有不准确的地方,建议英文水平不错的同学直接查看原版,有不足的地方欢迎指正 第一部分目录导航…
EF Core 快速上手--EF Core 介绍 本章导航 从本书你能学到什么 对EF6.x 程序员的一些话 EF Core 概述 1.3.1 ORM框架的缺点 第一个EF Core应用   本文是对<Entity framework in action>部分章节的翻译,某些场景也会附上笔者实践的Demo.尽管很认真的斟酌,但是水平有限,还请各位批评和斧正.   Entity Framework Core, 或者 EF Core,是一个方便软件工程师访问数据库的库.有很多方法来构建这样的一个库…
系列文章 EF Core 快速上手--EF Core 入门 本节导航 三种数据库关系类型建模 Migration方式创建和习修改数据库 定义和创建应用DbContext 将复杂查询拆分为子查询   本章主要介绍如何使用EF Core进行数据库读取,俗称查询.您将创建一个数据库,它包含EFCore中三种主要数据库关系类型.在这个过程当中,你将学会使用EF Core 创建和改变数据库的结构.   接下来你将学习到如何使用EF Core访问数据库并从数据库表中获取数据.在查看用主数据加载相关数据的各种…
升级到Asp.Net Core 5,使用EF Core连接MariaDB,使用的Nuget包Pomelo.EntityFrameworkCore.MySql也升级到了5.0.0-alpha.2,然后发现DbContext注入时的配置变了,看了一下文档,调整了一下,现在做个笔记 services.AddDbContext<AppDbContext>(options => options.UseMySql( Configuration.GetConnectionString("Ma…
前言 如果大家刚使用EntityFramework Core作为ORM框架的话,想必都会遇到数据库迁移的一些问题. 起初我是在ASP.NET Core的Web项目中进行的,但后来发现放在此处并不是很合理,一些关于数据库的迁移,比如新增表,字段,修改字段类型等等,不应该和最上层的Web项目所关联,数据的迁移文件放到这里也感觉有点多余,有点乱乱的感觉,所以才想着单独出来由专门的项目进行管理会比较好,也比较清晰! 注意目标框架选择的是.NET Core 2.0而不是.NET Standard 2.0.…
前言 在上一篇文章中,我们介绍了如何根据不同的租户进行数据分离,分离的办法是一个租户一个数据库. 也提到了这种模式还是相对比较重,所以本文会介绍一种更加普遍使用的办法: 按表分离租户. 这样做的好处是什么: 在目前的to B的系统中,其实往往会有一个Master数据库,里面使用的是系统中主要的数据,各个租户的数据,往往只是对应的订单.配置.客户信息. 这就造成了,租户的数据不会有很多的种类,他的数据表的数量相对Master来说还是比较少的. 所以在单一租户数据量没有十分庞大的时候,就没有必要对单…
更新 : 2018-11-26 这里记入一下关于 foreignKey cascade action 默认情况下如果我们使用 data annotation required + foreginkey . ef 会帮我们设计成 cascade delete 如果 foreignkey + nullable 就会是 cascade restrict. 如果使用 fluent api 的话就由我们设计了. ef 6.x 有一个功能可以把所有的 cascade delete 停掉, ef core 不…
ef core 有 unit of work 的概念,当我们 save change 时会自动使用 transaction 确保更新的一致性. 隔离级别是默认的 read committed 不允许脏读. 但是呢, 有时候我们希望拥有更好的隔离级别, 比如 repeatable read, serializable 那么就需要调用 database.beginTransaction 了. 一旦需要自己控制 trans 麻烦就跟着来了. 比如在多个服务嵌套调用时, 如何共享 trans 呢 ? 每…
本文介绍.net core2.1版本下 Mysql数据库采用DB first方式使用Ef 点击查看更简单的方法 1. 新建基于.net core2.1的项目(略) 2. 从nuget中引用Microsoft.AspNetCore.App (本次使用2.1.1版本,) 3. 从nuget中引用Pomelo.EntityFrameworkCore.MySql (本次使用2.1.2), Microsoft.EntityFrameworkCore(本次使用2.1.3),Microsoft.EntityF…
更新: 2019-12-23 foreignkey 并不一样要配上 alternate key,其实只要是 unique 就可以了. 和 sql server 是一样的, 经常有一种错觉 primary key = foreignkey 所以只能有 1个 column 但是很多时候用多个 column 来约束对业务的管理是有帮助的. 所以其实只要是 unique, 不管多少 column, 都是拿来作为其它 table 的 foreignkey relation. modelBuilder.En…
按照教程创建了一个 Blazor Server 项目 教程地址: https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/build-a-blazor-app?view=aspnetcore-5.0 还有一个教程是:https://www.cnblogs.com/MSReactor/p/14315549.html   首页在启动时,从MenuService  获取菜谱列表 menus = await Mmservise.GetMenuAsyn…
如果你使用命令: PM> add-migration Inital 提示如下信息时: The EF Core tools version '2.1.1-rtm-30846' is older than that of the runtime '2.1.4-rtm-31024' 解决方法大致一下几种: 第一 最近在跟着官方的文档学习 .NET Core . 在写 “创建 Razor 页面 Web 应用” Demo 中的——“添加模型”这一篇的教程,“添加初始迁移”中遇到 “The EF Core…
EF Core CRUD 上篇文章中,我们已经基本入门了EFCore,搭建了一个简单的EFCore项目,本文开始简单使用下EF,做增删改查的相关操作: 一.数据新增操作(C) public static async void Insert_测试新增数据1() { var myDbContext = new MyDbContext(); if (myDbContext.TestTables.Any(p => p.Id == 1)) return; var newEntity = new TestT…
1.构建运行mysql容器,添加数据库user 参考Docker创建运行多个mysql容器,地址 http://www.cnblogs.com/heyangyi/p/9288402.html 添加user数据库,添加tbusers表 2.创建asp.net core webapi 应用程序 参考Docker 为 ASP.NET Core WebApi 应用程序生成 Docker 映像,创建容器并运行,地址 http://www.cnblogs.com/heyangyi/p/9323407.htm…
Swagger简介: Swagger™的目标是为REST APIs 定义一个标准的,与语言无关的接口,使人和计算机在看不到源码或者看不到文档或者不能通过网络流量检测的情况下能发现和理解各种服务的功能.当服务通过Swagger定义,消费者就能与远程的服务互动通过少量的实现逻辑.类似于低级编程接口,Swagger去掉了调用服务时的很多猜测. 创建一个Asp.Net Core WebApi项目. 想要使用我们的Swagger你必须有Api,所以呢我们先构造一个数据库,当然我们可以使用DbFist,我们…
在win7,win10,vs2015,vs2017之间折腾了两天,死活就是调不出来Mysql数据源.真是活见鬼了. 直接说方案吧. 一,卸载你所安装过的mysql-connector-net.mysql-for-visualstudio-1.2.7.mysql-installer-community.mysql-installer-web-community等为了实现连接的应用或者驱动,在控制面板,卸载程序里搜,搜到这个右键卸载.清理,重启,关掉VS. 二,确认ODBC驱动,在控制面板\所有控制…
分两种情况,如果你是用entity framework 5.0的时候 mysql-connector-net的版本不是很重要. MySQL For VisualStudio的版本也不重要 (这个不装就不能选择连mysql) 如果你是要用entity framework 6.0的时候就麻烦点了,mysql-connector-net用最新的mysql-connector-net 6.9.6(下载地址:http://cdn.mysql.com/Downloads/Connector-Net/mysq…
今天在做一个小网站的时候遇到很多问题唉,我还是个菜鸟,懂的也不多,今天一个表单的提交按钮用不了,都弄了几个小时唉.不过最后还是搞定了,还有浏览器有开发人员选项,不然我都不知道我还要继续排查多久哦,今天晚上在把数据存入数据库的又出现了问题.我使用的是Entity Framework的Code First模式来访问数据库的.对于数据的验证我在数据模型上加了数据注解.当然在前台也引入了一些JS这样就可以再不把数据提交到服务器时完成验证功能.在后台保存用户提交的数据的时候,我们要用到ModelStatu…
先安装以下三个包: Install-Package Microsoft.EntityFrameworkCore.SqlServer Install-Package Microsoft.EntityFrameworkCore.Tools Install-Package Microsoft.VisualStudio.Web.CodeGeneration.Design 然后包管理控制台默认项目切换到相应项目,运行: Scaffold-DbContext "Data Source=192.168.110…
准备工作 1.下载vs2015 2.下载mysql2017 3.安装 1.创建数据库 2. 将数据库映射成模型 3创建aspx 文件. 写下窗体内容的代码 hello_worldEntities entity = new hello_worldEntities(); var query = from emp in entity.student select emp; GridView1.DataSource = query.ToList(); GridView1.DataBind(); 结果如下…
前言 目前 EF Core 的最新版本为 2.0.0-priview1-final,所以本篇文章主要是针对此版本的一些说明. 注意:如果你要在Visual Studio 中使用 .NET Core 2.0 , 你需要至少 Visual Studio 2017 15.3 预览版本. 安装或升级到 EF Core 2.0 你可以通过以下命令来安装或者升级你目前的 .NET Core 版本. // 安装 PM> install-package Microsoft.EntityFrameworkCore…