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 控制器应通过 ...
随机推荐
- DPDK L3fwd 源码阅读
代码部分 整个L3fwd有三千多行代码,但总体思想就是在L2fwd的基础上,增加网络层的根据 IP 地址进行路由查找的内容. main.c 文件 int main(int argc, char **a ...
- 对于Redis的了解
Redis :高性能的key-value数据库,支持存储的value类型包括字符串.链表.集合.有序集合.哈希类型. redis使用两种文件格式:全量数据和增量请求. 全量数据格式是将内存中的数据写入 ...
- __weak与__block修饰符区别
API Reference对__block变量修饰符的解释,大概意思: 1.__block对象在block中是可以被修改.重新赋值的. 2.__block对象在block中不会被block强引用一次, ...
- PAT 甲级 1004 Counting Leaves
https://pintia.cn/problem-sets/994805342720868352/problems/994805521431773184 A family hierarchy is ...
- JS面向对象(封装,继承)
在六月份找工作中,被问的最多的问题就是: js面向对象,继承,封装,原型链这些,你了解多少? 额,,,我怎么回答呢, 只能说,了解一些,不多不少,哈哈哈哈,当然,这是玩笑话. 不过之前学过java,来 ...
- 面试问题总结二(技术能力-PHP)----Ⅰ
1.你都做过什么项目? 答:第一份实习工作接触的项目是CRM 销售管理系统,一款用JSP语言开发的进销存管理系统.第一份正式工作是一款主打高质量图片社交社区网站项目,“美啦周末”(后改型为”聊会儿”) ...
- VMware 虚拟机 不能上网 CentOS 6.5 Windows 7上面安装了VMware,然后安装了CentOS系统,安装完了无法上网;
今天想要学习一下大数据的知识,在windows 7上面 安装了VMware,然后安装了Centos系统,但是发现安装完了,无法上网 我在Centos上面 使用 ping www.baidu.com 始 ...
- Java中split的对象被特殊字符(.或|)分隔
在Java中,一个String对象被一些特殊字符分隔时,可以使用split()方法,生成一个String[],然后进行其他的操作,就像下面这样: String str = "a1_b1_c1 ...
- Hystrix 容错处理
目录 雪崩效应 容错的基本思想 什么是Hystrix 简单使用 消费端使用Hystrix 注解开启 改造消费方法 @HystrixCommand 详细配置 Hystrix线程隔离策略与传播上下文 Hy ...
- BZOJ1226 SDOI2009学校食堂(状压dp)
由于Bi<=7,考虑状压. 如果考虑前i个位置的话,状态里需要压入前7个人后7个人,显然是跑不动的. 那么改成考虑前i个人.于是设f[i][j][k]表示前i个人都已吃完饭,i+1后面7个人的吃 ...