博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Entity Framework 实体关系总结:one-to-one, one-to-many, many-to-many
阅读量:6616 次
发布时间:2019-06-25

本文共 1274 字,大约阅读时间需要 4 分钟。

通过 文章,理了理 Entity Framework 的实体关系。

为什么要写文章来理清这些关系?“血”的教训啊,刚开始使用 Entity Framework 的时候,由于没有静下心来认真理清关系,走了一些"痛不欲生"的弯路。而我们目前开发的项目都在使用 Entity Framework,为了避免其他人再经历"痛不欲生"的弯路。于是下定决心边“理清关系”边“写博客”。而写博客可以逼着自己把问题完整地解决,避免半途而废。当写出这些文章,自己不知不觉对问题有了更深的理解。

温故而知新,通过这篇总结将自己对EF实体关系的理解回锅热一热,也许会有新的收获;感情也一样,当感情冷下来的时候,别忘了回锅热一热。

2011071108452250.png

1. 一对一关系(one-to-one)

a) 单向一对一()

类图:

2011070714423224.png

数据库表结构:

2011070711382157.png

Entity Framework中实体关系的定义:

 
modelBuilder.Entity
<
BlogSite
>
()
.HasRequired(b
=>
b.BlogUser)
.WithMany()
.HasForeignKey(b
=>
b.UserID);

b) 双向一对一()

类图:

2011070818492479.png

数据库表结构:

2011070818543685.png

Entity Framework中实体关系的定义:

 
modelBuilder.Entity
<
BlogSite
>
()
.HasRequired(b
=>
b.BlogUser)
.WithMany()
.HasForeignKey(b
=>
b.UserID);
modelBuilder.Entity
<
BlogUser
>
()
.HasRequired(u
=>
u.BlogSite)
.WithMany()
.HasForeignKey(u
=>
u.BlogID);

2. 一对多关系(one-to-many,)

类图:

2011070908595633.png

数据库表结构:

2011071009495393.png

Entity Framework中实体关系的定义:
 
modelBuilder.Entity
<
BlogSite
>
()
.HasMany(b
=>
b.BlogPosts)
.WithRequired(p
=>
p.BlogSite);

3. 多对多关系(many-to-many,)

类图:

2011070917092622.png

数据库表结构:

2011070917261970.png

Entity Framework中实体关系的定义:

 
modelBuilder.Entity
<
BlogPost
>
()
.HasMany(b
=>
b.Categories)
.WithMany(c
=>
c.BlogPosts)
.Map
(
m
=>
{
m.MapLeftKey(
"
BlogPostID
"
);
m.MapRightKey(
"
CategoryID
"
);
m.ToTable(
"
BlogPost_Category
"
);
}
);

转载于:https://www.cnblogs.com/dudu/archive/2011/07/11/ef_one-to-one_one-to-many_many-to-many.html

你可能感兴趣的文章
非抢占式系统优点
查看>>
RabbitMQ-从基础到实战(2)— 防止消息丢失
查看>>
5.1、Android Studio用Logcat编写和查看日志
查看>>
【译】ExtJS 4.1会带来什么
查看>>
正则表达式基础知识
查看>>
【ShaderToy】开篇
查看>>
wp7 城市天气预报查询
查看>>
重要的话
查看>>
银联参数
查看>>
让你的网站用上https
查看>>
poj2243
查看>>
mysql多个TimeStamp设置(转)
查看>>
php中的占位符
查看>>
vue part3.4 小案例 消息订阅pubsub与ajax
查看>>
Strus2学习Exception处理集锦(一)
查看>>
BSS段 data段 text段 堆heap 和 栈stack
查看>>
数据库创建好之后如何创建scott用户
查看>>
关于RichTextBox字体的问题
查看>>
关于今天很热的--FizzBuzzWhizz
查看>>
EBS销售订单挑库发放处理程序
查看>>