Entity Framework Core in Action

Entityframework Core in action是 Jon P smith 所著的关于Entityframework Core 书籍。原版地址. 是除了官方文档外另一个学习EF Core的不错途径, 书中由浅入深的讲解的EF Core的相关知识。因为没有中文版,所以本人对其进行翻译。 预计每两天一篇更新 PS: 翻译难免限于本人水平有不准确的地方,建议英文水平不错的同学直接查看原版,有不足的地方欢迎指正

第一部分目录导航

MyFirstEfCoreApp应用程序设置

创建了.Net Core控制应用程序过后,现在可以编写EF Core代码了. 在编写数据库访问代码之前,你需要做两个重要的部分

- EF Core将类映射到数据库中的表

- 应用程序的DbContext,它是用于配置和访问数据库的主类

映射到数据库中的类 -- Book和Author

EF Core将类映射为数据库中的表. 因此你需要创建一个实体类,或者你已有一个数据库则需要匹配数据库表. 有很多的规则和配置(本书后面会介绍), 图1.4给出了映射到数据库表的实体类的一般格式

下面是Author实体类的定义,它的结构与Book类相同,主键遵循EF Core命名约定(参见第6.3.15节). Book类有一个名为AuthorId的属性,EF Core将它视为外键,因为它与Author实体的主键同名

public class Author
{
public int AuthorId { get; set; }
public string Name { get; set; }
public string WebUrl { get; set; }
}

应用程序中的DbContext(数据库上下文)

另一个重要的部分是应用程序的DBContext. 这是继承自EF Core的DbContext的类. 它包含EF Core配置数据库所需的信息,也是在代码中访问数据库时使用的类(参见 1.9.2节). 图1.5展示了MyFirstEfCoreApp控制台应用使用的DbContext (名为AppDbContext)

在我们的小型示例中,建模的所有细节都是由EF Core完成的,它通过使用约定来解决问题. 你有很多其他方法告诉EF Core数据库模型的配置,这些命令会让这个小示例变的复杂,所以暂时不做介绍. 在第6章和第7章中介绍了所有的配置选择

本示例中使用了一种方法定义控制台应用程序的DbContext: 覆盖应用程序的DbContext的OnConfiguring方法,提供EF Core需要的数据库类型和连接字符串等其他信息. 这种方法的缺点是它的连接字符串是固定的,不利于单元测试

在ASP.NET Core应用程序中这是一个问题, 因为在不同的环境: 开发,测试,生产我们会使用不同的数据库. 在第2章中我们将构建一个ASP.NET Core Web应用程序,将会使用一个不同的方式来更改数据库连接字符串(参见2.2.2节)

[翻译 EF Core in Action 1.8] MyFirstEfCoreApp应用程序设置的更多相关文章

  1. [翻译 EF Core in Action 1.7] MyFirstEfCoreApp访问的数据库

    Entity Framework Core in Action Entityframework Core in action是 Jon P smith 所著的关于Entityframework Cor ...

  2. [翻译 EF Core in Action 2.2] 创建应用程序的数据库上下文

    Entity Framework Core in Action Entityframework Core in action是 Jon P smith 所著的关于Entityframework Cor ...

  3. [翻译 EF Core in Action 1.9] 掀开EF Core的引擎盖看看EF Core内部是如何工作的

    Entity Framework Core in Action Entityframework Core in action是 Jon P smith 所著的关于Entityframework Cor ...

  4. [翻译 EF Core in Action 1.6]你的第一个EF Core应用程序

    Entity Framework Core in Action Entityframework Core in action是 Jon P smith 所著的关于Entityframework Cor ...

  5. [翻译 EF Core in Action 2.3] 理解EF Core数据库查询

    Entity Framework Core in Action Entityframework Core in action是 Jon P smith 所著的关于Entityframework Cor ...

  6. [翻译 EF Core in Action 2.1] 设置一个图书销售网站的场景

    Entity Framework Core in Action Entityframework Core in action是 Jon P smith 所著的关于Entityframework Cor ...

  7. [翻译 EF Core in Action 2.0] 查询数据库

    Entity Framework Core in Action Entityframework Core in action是 Jon P smith 所著的关于Entityframework Cor ...

  8. [翻译 EF Core in Action 1.10] 应该在项目中使用EF Core吗?

    Entity Framework Core in Action Entityframework Core in action是 Jon P smith 所著的关于Entityframework Cor ...

  9. [翻译 EF Core in Action 1.11] 何时不应该使用EF Core

    Entity Framework Core in Action Entityframework Core in action是 Jon P smith 所著的关于Entityframework Cor ...

随机推荐

  1. Python函数化编程整理

    1.映射函数 items=[1,2,3,4,5] def inc(x): return x+1 list(map(inc,items)) [2, 3, 4, 5, 6] >>> a ...

  2. .net 弹出消息框后,页面样式变乱

    点击按钮,执行提交操作,弹出消息框后,页面的样式变乱,解决方法: 首先,确定使用的css样式正确,页面中的宽高值保持规范统一: 然后,弹出框避免使用Response.Write(),如下所示 Resp ...

  3. List数组和集合相互转换

    1.List的toArray()方法用于将集合转换成数组,但实际上改方法是在Collection中定义的,所以所有的集合都具备这个功能, 其有两个方法:Object[] toArray()  和   ...

  4. form表单发送请求实例

    <%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncodi ...

  5. UIAlertControl的使用对比与UIAlertView和UIActionSheet

    1.UIAlertVIew以-(void)show的方法显示: - (void)viewDidLoad { [super viewDidLoad]; //UIAlertView的使用 [self sh ...

  6. 常见性能优化策略的总结 good

    阅读目录 代码 数据库 缓存 异步 NoSQL JVM调优 多线程与分布式 度量系统(监控.报警.服务依赖管理) 案例一:商家与控制区关系的刷新job 案例二:POI缓存设计与实现 案例三:业务运营后 ...

  7. JavaWeb(一)JavaWeb应用的概念

    JavaWeb应用的概念 在Sun的Java Servlet规范中,对Java Web应用作了这样定义:"Java Web应用由一组Servlet.HTML页.类.以及其它可以被绑定的资源构 ...

  8. springboot集成schedule(深度理解)

    背景 在项目开发过程中,我们经常需要执行具有周期性的任务.通过定时任务可以很好的帮助我们实现. 我们拿常用的几种定时任务框架做一个比较: 从以上表格可以看出,Spring Schedule框架功能完善 ...

  9. Python常用算法(二)

    1.快速排序 过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小 一般选取第一个数作为关键数据k,我们要把比k小的所有数据移到它的左面,从后往前找第一个比它 ...

  10. Python常用算法(一)

    1.选择排序 不断找到最小的(找最大的也是可以的) 首先拿到第一个,然后发现比它小的,记住下标.循环一轮,找到最小的数的位置 和 最左边的数交换位置 然后从第二个开始....和第二个交换位置,循环最后 ...