我在网上看到很多.netCore的信息,就动手自己写一个例子测试哈,但是想不到其中这么多坑;

1.首先.netCore和EF的安装就不用多说了,网上有很多的讲解可以跟着一步一步的下载和安装,但是需要注意点就安装Microsoft.EntityFrameworkCore.SqlServer程序包(Install-Package Microsoft.EntityFrameworkCore.Sqlite –Pre);

2.创建实体

/// <summary>
/// 学生类
/// </summary>
public class Student
{
/// <summary>
/// ID
/// </summary>
[Key]
public Guid ID { get; set; } = Guid.NewGuid();
/// <summary>
/// 名字
/// </summary>
[StringLength()]
[Required]
public string Name { get; set; }
/// <summary>
/// 年龄
/// </summary>
public int Age { get; set; }
/// <summary>
/// 性别
/// </summary>
public EmSex Sex { get; set; } = EmSex.未填;
}
public enum EmSex
{
男 = ,
女 = ,
未填 =
}

3.创建EF的上下文DbContext

public class DbContextHelper : DbContext
{
public DbSet<Student> StudentEntity { get; set; } public DbContextHelper() { } public DbContextHelper(DbContextOptions options) : base(options)
{
} //protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
//{
// string str = "data source=.; Initial Catalog=NetCore_TestDB ; uid=sa; pwd=qwertyuiop";
// optionsBuilder.UseSqlServer(str);
// //optionsBuilder.UseSqlite(str); //}
}

4.编写数据库操作的接口和实现类

 public interface IStudentService
{
Task<int> AddStudnet(Student entity);
Task<int> DeltStudent(Guid id);
List<Student> GetStudent(Expression<Func<Student,bool>> fun);
}
public class StudentService : IStudentService
{
public async Task<int> AddStudnet(Student entity)
{
using (DbContextHelper dbHelper =new DbContextHelper () ) {
await dbHelper.AddAsync(entity);
return dbHelper.SaveChanges();
}
}
public async Task<int> DeltStudent(Guid id)
{
using (DbContextHelper dbHelper =new DbHelper.DbContextHelper ()) {
var entity =await dbHelper.StudentEntity.FindAsync(id);
if (entity == null)
{
return -;
}
else
{
dbHelper.StudentEntity.Remove(entity);
return dbHelper.SaveChanges();
}
}
}
public List<Student> GetStudent(Expression<Func<Student, bool>> fun)
{
using (DbContextHelper dbHelper =new DbHelper.DbContextHelper ()) {
var List = dbHelper.StudentEntity.Where(fun).ToList();
return List;
}
}
}

5.创建Controller进行调用

public class HomeController : Controller
{
private IStudentService StudentDb = new StudentService();
// GET: /<controller>/
public IActionResult Index()
{
var list = StudentDb.GetStudent(it=>true);
return View();
}
}

6.下面配置数据库链接和EF的初始化创建

public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddApplicationInsightsTelemetry(Configuration); //services.AddEntityFrameworkSqlServer()
// .AddDbContext<DbContextHelper>();
//options =>
// options.UseSqlServer(Configuration["AppSettings:DefaultConnectionStr"])
services.AddDbContext<DbContextHelper>(options => options.UseSqlite(Configuration["AppSettings:DefaultConnectionStr"])); services.AddMvc();
services.AddTransient<IStudentService, StudentService>();
}
"AppSettings": {
"DefaultConnectionStr": "data source=.; Initial Catalog=NetCore_TestDB ; uid=sa; pwd=qwertyuiop"
},

上面很多网上都有相关的资料可以查询,我这里只是梳理了哈,下面开始运行

开始报这个错误

后面经过查看很多资料,晓得是上下文的注册造成的,这个问题就需要注意几点:

1.获取字符串一定要注意不要不能包含空格符号

services.AddDbContext<DbContextHelper>(options => options.UseSqlite(Configuration["AppSettings:DefaultConnectionStr"]));

2.一定给要注意区分哈UseSqlite和UseSqlServer;

修改之后运行,还是会有上面的问题,具体原因我也不是很清楚,但是我找宁外一种解决方案进行初始化数据库链接字符串,重写OnConfiguring

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
string str = "data source=.; Initial Catalog=NetCore_TestDB ; uid=sa; pwd=qwertyuiop";
optionsBuilder.UseSqlServer(str);
}

修改之后在运行,问题得到了解决。

需要源码留下邮箱我看到后发,一起讨论!

.NetCore之EF跳过的坑的更多相关文章

  1. pg_stat_statements跳过的坑

    pg_stat_statements跳过的坑 原本以为只是一个简单的插件扩展安装,三下五除二就能搞定,结果搞了很久也没找到问题所在.首先pg_stat_statements已经安装成功,且已经能够使用 ...

  2. 微信小程序跳转以及跳转的坑

    一.首先小程序的跳转方法有一下几种 js控制跳转 // 保留当前页面,跳转到应用内的某个页面 wx.navigateTo({ url: '../blueberry/blueberry' }); // ...

  3. 微信小程序从入坑到放弃之坑十二:navigator无法跳转的坑

    转自:http://www.yilingsj.com/xwzj/2018-11-25/weixin-miniprogram-navigator.html 微信小程序中的页面跳转用navigator就行 ...

  4. Python,Pycharm,Anaconda等的关系与安装过程~为初学者跳过各种坑

    1.致欢迎词 我将详讲讲述在学Python初期的各种手忙脚乱的问题的解决,通过这些步骤的操作,让你的注意力集中在Python的语法上以及后面利用Python所解决的项目问题上.而我自己作为小白,很不幸 ...

  5. 菜鸡之NetCore 使用EF操作数据库 Oracle & Sqlserver (一)

    摘要: 该篇文章主要记录netCore EFCore 如何操作Oracle和SqlServer 数据库,采用Codefirst方式创建数据库以及表. 一, 项目建立 项目采用DDD领域驱动设计模式[学 ...

  6. 在 .NetCore 项目中使用 SkyWalkingAPM 踩坑排坑日记

    SkyWalking 概述 SkyWalking 是观察性分析平台和应用性能管理系统.提供分布式追踪.服务网格遥测分析.度量聚合和可视化一体化解决方案.支持Java, .Net Core, PHP, ...

  7. 跟我一起学.NetCore之EF Core 实战入门,一看就会

    前言 还记得当初学习数据库操作时,用ADO.NET一步一步地进行数据操作及查询,对于查询到的数据还得对其进行解析,然后封装返回给应用层:遇到这种重复而繁琐的工作,总有一些大神或团队对其进行封装,从而出 ...

  8. .NET框架 - NETCORE + API + EF + MYSQL

    .NET框架 - NETCORE + API + EFCORE + MYSQL 1. 新建项目: 本文中使用 框架 .netcore2.2 . 2. 生成项目框架 3 安装MYSQL插件 点击“工具” ...

  9. NetCore+MySql+EF 数据库生成实体模型

    NetCore版本    2.1 1.点击“工具”->“NuGet包管理器”->“程序包管理器控制台” 分别安装以下几个包 Mysql 版本: MySql.Data.EntityFrame ...

随机推荐

  1. Elasticsearch 5.0 中term 查询和match 查询的认识

    Elasticsearch 5.0 关于term query和match query的认识 一.基本情况 前言:term query和match query牵扯的东西比较多,例如分词器.mapping ...

  2. nodejs进阶(3)—路由处理

    1. url.parse(url)解析 该方法将一个URL字符串转换成对象并返回. url.parse(urlStr, [parseQueryString], [slashesDenoteHost]) ...

  3. C++实现线程安全的单例模式

    在某些应用环境下面,一个类只允许有一个实例,这就是著名的单例模式.单例模式分为懒汉模式,跟饿汉模式两种. 首先给出饿汉模式的实现 template <class T> class sing ...

  4. Visaul Studio 常用快捷键的动画演示

    从本篇文章开始,我将会陆续介绍提高 VS 开发效率的文章,欢迎大家补充~ 在进行代码开发的时候,我们往往会频繁的使用键盘.鼠标进行协作,但是切换使用两种工具会影响到我们的开发速度,如果所有的操作都可以 ...

  5. Android GridView 通过seletor 设置状态和默认状态

    Android中可以通过selector控制GridView Item 的状态,而省去使用代码控制 GridView View Selector Xml文件 <?xml version=&quo ...

  6. C#多线程之线程池篇2

    在上一篇C#多线程之线程池篇1中,我们主要学习了如何在线程池中调用委托以及如何在线程池中执行异步操作,在这篇中,我们将学习线程池和并行度.实现取消选项的相关知识. 三.线程池和并行度 在这一小节中,我 ...

  7. CRL快速开发框架系列教程九(导入/导出数据)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  8. pdo的使用

    PHP 数据对象 (PDO) 扩展为PHP访问数据库定义了一个轻量级的一致接口. PDO 提供了一个数据访问抽象层,这意味着,不管使用哪种数据库,都可以用相同的函数(方法)来查询和获取数据. PDO随 ...

  9. 【热门技术】EventBus 3.0,让事件订阅更简单,从此告别组件消息传递烦恼~

    一.写在前面 还在为时间接收而烦恼吗?还在为各种组件间的消息传递烦恼吗?EventBus 3.0,专注于android的发布.订阅事件总线,让各组件间的消息传递更简单!完美替代Intent,Handl ...

  10. ASP.NET Core 中文文档 第四章 MVC(3.7 )局部视图(partial)

    原文:Partial Views 作者:Steve Smith 翻译:张海龙(jiechen).刘怡(AlexLEWIS) 校对:许登洋(Seay).何镇汐.魏美娟(初见) ASP.NET Core ...