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 控制器应通过 ... 
随机推荐
- Navicat Premium 连接Oracle 数据库
			昨天开始工作的时候听同事说:Navicat可以连各种数据库,包括Oracle,头一次听说!!!很是尴尬.现在记录一下怎么用Navicat连接Oracle.最重要的是,Navicat只支持32的Orac ... 
- 项目冲刺Beta第二篇博客
			Beta版本冲刺计划安排 1.当天站立式会议照片: 2.工作分工: 团队成员 分工 张洪滨060 排行榜界面美化 陈敬轩059 注册成功界面美化 黄兴067 登录界面美化 林国梽068 答题界 ... 
- T4模板_入门
			T4模板作为VS自带的一套代码生成器,功能有多强大我也不知道,最近查找了一些资料学习一下,做个笔记 更详细的资料参见: MSDN: http://msdn.microsoft.com/zh-cn/li ... 
- 个人作业-Week 2
			一.代码复审 概要部分 代码能符合需求和规格说明么? 能: 代码设计是否有周全的考虑? 有较为周全的考虑: 代码可读性如何? 可读性一般: 代码容易维护么? 不太容易维护: 代码的每一行都执行并检查过 ... 
- 开放地址法散列表ADT
			数据结构定义如下: typedef unsigned int Index; typedef Index Position; struct HashTbl; typedef struct HashTbl ... 
- Python实现熵值法确定权重
			本文从以下四个方面,介绍用Python实现熵值法确定权重: 一. 熵值法介绍 二. 熵值法实现 三. Python实现熵值法示例1 四. Python实现熵值法示例2 一. 熵值法介绍 熵值法是计算指 ... 
- Python面向对象高级编程:__slot__(给实例添加方法、属性)
			纲要: 本章总的来说是给实例添加属性,给类添加方法两个主题,以及相应的作用范围.总结如下: 1.给实例添加属性(作用范围:当然是只对当前实例有效): 2.用__slots__限制可以给实例添加的属性( ... 
- LINQ to SQL和Entity Framework
			LINQ to SQL和Entity Framework都是一种包含LINQ功能的对象关系映射技术. 那么为什么会有LINQ这个东西的出现呢. 简单来说LINQ是为了满足不知道怎么操作数据库的程序员开 ... 
- 2018 桂林ccpc现场赛 总结
			Day 0 5个小时的火车,坐的昏昏欲睡.桂林站出来没有地铁,而是出租车排成长队依次上车,也算是某种意义上的地铁吧.到了酒店才发现学校那边又给我们换了,又拖着行李找新的酒店,途中路过一家餐馆,所有人都 ... 
- Java将其他数据类型转换成JSON字符串格式
			Student.java package com.demo.servlet; import java.util.List; import java.util.Map; public class Stu ... 
