Pre Post

spec:

  • you are a coder
  • visual studio 2019
  • nuget.org

introduction

Entity Framework 是一种 .net 框架下的object-relational mapper (O/RM)。 简单的总结就是纯代码,自动生成数据库,或自动CRUD数据库。

具体的流程就是写class,然后宣言dbcontext,尔后add操作就是insert,remove操作就是delete,会进行一系列的自动化处理。

Entity Framework和Entity Framework Core选择哪一个的问题。 如果是用的.net core的话,就用core就好了。

example

这里有一段非常好的易于理解的例子。

除了数据库的class如何宣言,还有数据库的1对多以及多对1的关系如何去搞定。

最后还有一份CURD的简单操作。

在entity framwork中,对于数据库的种种操作主要使用的是LINQ。

add db table automatic or manual

我们回归到ASP .net core中,创建好model和context之后,输入以下指令来自动创建数据库

1
2
EntityFrameworkCore\Add-Migration init
EntityFrameworkCore\Update-Database

generate CRUD pages in asp .net core

鼠标右键,添加Razor Page,选择CURD,自动生成dbcontext……

specify [key] and [table]

inner join

1
2
3
4
5
from s in apple.Services
join sa in banana.Service
on s.Id equals sa.ServiceId
where sa.LocationId == 1
select s

left join

1
2
3
4
5
6
7
8
9
var query = from a in apple
            join b in banana 
            on a.id equals b.id into gj
            from x in gj.DefaultIfEmpty()
            select new { 
                id = a.id,
                bananaName = b.name
                Price = (x == null ? String.Empty : x.Price) 
            };

connection string specific port

1
Server=myServerName,myPortNumber;Database=myDataBase;User Id=myUsername;Password=myPassword;

creativ common license