EFcore的 基础理解<一>
2024-09-01 15:45:46
1.新建.netCore Web项目。这时候,还与EF没啥关系。
2.然后添加类 Bolg.和 Post 参考这里 https://docs.microsoft.com/en-us/ef/core/modeling/relational/fk-constraints
public class Blog
{
public int BlogId { get; set; }
public string Url { get; set; } public List<Post> Posts { get; set; }
} public class Post
{
public int PostId { get; set; }
public string Title { get; set; }
public string Content { get; set; } public int BlogId { get; set; }
public Blog Blog { get; set; }
}
3.新增控制器Blogs。使用 “”其操作使用EF 的控制器“。
这时候会从Nuget 上安装EF 相关的类库。
还会生成 这个上下文类
public class MyEFTestContext : DbContext
{
public MyEFTestContext (DbContextOptions<MyEFTestContext> options)
: base(options)
{
} public DbSet<MyEFTest.Models.Blog> Blog { get; set; }
}
4.执行 add-migration. 会生成migration 文件夹。下面会有迁移文件和 snap.cs 文件。
可以看到。在迁移文件中。
modelBuilder.Entity("MyEFTest.Models.Post", b =>
{
b.HasOne("MyEFTest.Models.Blog", "Blog")
.WithMany("Posts")
.HasForeignKey("BlogId")
.OnDelete(DeleteBehavior.Cascade);
});
这里指定了外键关系。
再添加
public class RssBlog : Blog
{
public string RssUrl { get; set; }
}
这会扩展Blog 表。扩展的语句也是自动生成的。
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<string>(
name: "Discriminator",
table: "Blog",
nullable: false,
defaultValue: ""); migrationBuilder.AddColumn<string>(
name: "RssUrl",
table: "Blog",
nullable: true);
}
执行 update-database. 数据库文件会在 C:\Users\QiGongbo 这个下面生成。
打卡VS下的服务器资源管理器,就能看到这个数据库中表的定义。
最新文章
- C#和Java中的Substring()
- 项目文件中含有两个config文件,app.config与app1.config,如何获取app1.config中的配置
- 137. Single Number II——问题是查找,本质是hash查找,只是记录的是32 bit中各个位出现次数而已
- java 计算器基于工厂模式和功能单一模式
- hdu 5312 Sequence(数学推导+线性探查(两数相加版))
- Swift - String与NSString的区别,以及各自的使用场景
- NYoj_20吝啬的国度
- Python中if __name__==";__main__"; 语句在调用多进程Process过程中的作用分析
- 微信小程序基于第三方websocket的服务器端部署
- spring中基于注解使用AOP
- vue-cli: preset预设
- js call 理解
- IntelliJ IDEA 构建maven多模块项目
- 解决Firefox下,页面元素不刷新问题
- 【Java】 剑指offer(55-1) 二叉树的深度
- WebService的一种简单应用方式入门
- 图像检索:一维直方图+欧几里得距离+flann+KNN
- Linux中chown、chmod、chgrp
- php时间戳函数mktime()
- Luogu3804 【模板】后缀自动机