core EFCore 开始尝试
准备工作:
工程:core + console
引用包:
- Install-Package Microsoft.EntityFrameworkCore
- Install-Package Microsoft.EntityFrameworkCore.SqlServer
- Install-Package Microsoft.EntityFrameworkCore.Tools
- Install-Package Microsoft.Extensions.Configuration.Json
Sqlserver库:127.0.0.1 MyDB sa xxx
表:MyTable --> ID int primaryKey ……
可以使用Scaffold-DbContext命令生成上下文和实体(此步依赖Microsoft.EntityFrameworkCore.Tools),如下:
- Scaffold-DbContext "Data Source=.;Initial Catalog=MyDB;User ID=sa;Password=xxx;MultipleActiveResultSets=true" Microsoft.EntityFrameworkCore.SqlServer -OutputDir models
生成的MyDbContext如下:
- public partial class MyDBContext : DbContext
- {
- public virtual DbSet<MyTable> MyTable { get; set; }
- protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
- {
- if (!optionsBuilder.IsConfigured)
- {
- //改为读取json配置文件中连接字符串
- optionsBuilder.UseSqlServer(Common.configuration.GetSection("connStr").Value);
- //optionsBuilder.UseSqlServer(@"Data Source=.;Initial Catalog=MyDB;User ID=sa;Password=@sa123;MultipleActiveResultSets=true");
- }
- }
- protected override void OnModelCreating(ModelBuilder modelBuilder)
- {
- modelBuilder.Entity<MyTable>(entity =>
- {
- entity.Property(e => e.Id).HasColumnName("ID");
- entity.Property(e => e.Address)
- .HasMaxLength()
- .IsUnicode(false);
- entity.Property(e => e.Name)
- .HasMaxLength()
- .IsUnicode(false);
- entity.Property(e => e.Value)
- .HasMaxLength()
- .IsUnicode(false);
- });
- }
- }
改为由json配置文件读取连接字符串需引用Microsoft.Extensions.Configuration.Json,当然前提可解析json的包也可以,在console中,json文件属性需设置为“始终复制,内容”,使用如下:
- public class Common
- {
- public static IConfiguration configuration { get; set; }
- }
- //附加配置文件
- Common.configuration = new ConfigurationBuilder().Add(new JsonConfigurationSource() { Path = "project.json" }).Build();
- //获取配置文件信息
- Common.configuration.GetSection("connStr").Value;
- //获取配置文件信息时转为对象
- Common.configuration.GetSection("connStr").Get<string>();
测试程序如下:
- class Program
- {
- static void Main(string[] args)
- {
- Common.configuration = new ConfigurationBuilder().Add(new JsonConfigurationSource() { Path = "project.json" }).Build();
- using (MyDBContext context = new MyDBContext())
- {
- var model = context.MyTable.Find();
- var list = context.MyTable.FromSql(new RawSqlString("select * from mytable")).ToListAsync().Result;
- }
- Console.ReadKey();
- }
- }
core EFCore 开始尝试的更多相关文章
- .Net core,EFCore 入门
我在百度上搜了一下.net core和efcore 入门案例.好多博客都是大概说了一下做法,对于小白而言还是一头雾水,我今天就抽出一点时间,写一个详细的入门小案例,就一张表没有什么业务可言.主要是操 ...
- ASP.NET Core EFCore 之Code First
1.在.NET Core项目中使用Nuget引用包 Sql Server 请安装 Microsoft.EntityFrameworkCore.SqlServer 2.添加实体类 [Table(&quo ...
- 旧 WCF 项目迁移到 asp.net core + gRPC 的尝试
一个月前,公司的运行WCF的windows服务器down掉了,由于 AWS 没有通知,没有能第一时间发现问题. 所以,客户提出将WCF服务由C#改为JAVA,在Linux上面运行:一方面,AWS对Li ...
- .net core EFcore model生成数据
创建数据库 (扫盲贴还劳烦大神们勿喷,谢谢) 打开数据库 输入如下代码 创建数据库 CREATE DATABASE [Blogging]; GO USE [Blogging]; GO CREATE T ...
- 使用.net core efcore根据数据库结构自动生成实体类
源码 github,已更新最新代码 https://github.com/leoparddne/GenEntities/ 使用的DB是mysql,所有先nuget一下mysql.data 创建t4模板 ...
- .net core EFCore CodeFirst 迁移出现错误【No project was found. Change the current working directory or use the --project option. 】
PM> dotnet ef Migrations add Init No project was found. Change the current working directory or u ...
- ASP.NET Core EFCore 之DBFirst 自动创建实体类和数据库上下文
通过引用Nuget包添加实体类 运行 Install-Package Microsoft.EntityFrameworkCore.SqlServer 运行 Install-Package Micros ...
- ASP.NET CORE系列【三】使用Entity Framework Core进行增删改查
身份验证 以前我们熟悉的web.config中配置的form验证,现在没有了.我们来看看在Core里面如何配置: 首先需要NuGet安装一个包:Microsoft.AspNetCore.Authent ...
- ASP.NET Core 中文文档 第四章 MVC(4.4)依赖注入和控制器
原文: Dependency Injection and Controllers 作者: Steve Smith 翻译: 刘浩杨 校对: 孟帅洋(书缘) ASP.NET Core MVC 控制器应通过 ...
随机推荐
- angularJS1笔记-(5)-过滤器练习
html: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...
- foo()与@foo()的区别
1.@foo() 是错误控制输出,foo()是正常调用输出. 2.@符号在PHP 中可以忽略错误报告,对于表达式有提示错误的,但有不影响语句执行的,可以在表达式之前加@. 3.可以把@符号放在变量.函 ...
- [转帖]IPV6取代IPV4之路 为何道阻且长?
IPV6取代IPV4之路 为何道阻且长? 经济学人公众号 IPV6作为IPV4的续命神术,从被提出到现今,逾26年之久.而IPV6在中国更是犹抱琵琶半遮面,千呼万唤难出来,IPV6取代IPV4之路,为 ...
- yii2微博第三方登录
原作者:杜文建 原博客:http://www.cnblogs.com/dwj97/p/6530568.html yii2微博第三方登录 微博登录是最常用的第三方账号登录之一.由于其网站用户量大,可 ...
- java中为什么要进行对象序列化?
序列化其实很好理解,假如你现在做一个项目,项目是分工合作的,并且你喝其他小组成员不在同一个城市,那么你要如何把你写的那些类给其他小组成员呢?这个时候就要用到序列化了,简单的说:序列化就是将内存中的类或 ...
- ySQL性能优化的21个最佳实践 和 mysql使用索引
MySQL性能优化的21个最佳实践 和 mysql使用索引 今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我 ...
- HDU2883_kebab
很好的题目. 有不多于200个任务,每个任务要在si到ei这个时间段内完成,每个任务的任务量是ti*ni,只有一台机器,且其单位时间内可完成的任务量为m. 现在问你,能否使所有的任务全部在规定的时间段 ...
- 013 BIO、NIO、AIO的区别
作者:nnngu GitHub:https://github.com/nnngu 博客园:http://www.cnblogs.com/nnngu 简书:https://www.jianshu.com ...
- 【转】__ATTRIBUTE__ 你知多少
__ATTRIBUTE__ 你知多少? GNU C 的一大特色就是__attribute__ 机制.__attribute__ 可以设置函数属性(Function Attribute ).变量属性(V ...
- 一种KEIL中定义过的变量在使用中提示未定义的情况
[环境] > KEIL5.25 > win10 > @2018-4-23 [问题] 头文件互包含导致的错误(使用了另一文件的类型定义) 文件<fileA.h> <f ...