EF 通过导航添加数据
Fluent Api是指定模型与数据库表之间的对应关系
//一对多
this.HasOptional(x => x.主表).WithMany(x => x.多表).HasForeignKey(x => x.多表关联的主表id); //一对一 this.HasRequired(x => x.表1).WithOptional(x => x.表2);
表中都有对应的主键,没有外键
两个表实体如下
用户表
public class User
{
public User()
{
Orders =new HashSet<OrderInfo>()
} public int Id{get;set;}
public string Name{get;set;} public virtual ICollection<OrderInfo> Orders {get;set;}
}
订单表
public class OrderInfo
{
public int Id { get; set; }
public string OrderNo { get; set; } public string OrderName { get; set; }
public virtual User User { get; set; }
}
通过Fluent Api指定用户与订单的对应关系
public class OrderInfo: EntityTypeConfiguration<OrderInfo>
{
public OrderInfo()
{
// Primary Key
this.HasKey(t => t.Id); // Table & Column Mappings
this.ToTable("OrderInfo");
//添加导航属性
//
this.HasOptional(x => x.User).WithMany(x => x.OrderInfo).HasForeignKey(x => x.Id);
}
}
添加数据 会同时保存用户表和订单表
User u=new User();
u.Name="张三";
OrderInfo orderInfo=new OrderInfo ();
u.Orders.Add(new OrderInfo(){ OrderNo=""})
u.Orders.Add(new OrderInfo(){ OrderNo=""})
db.User.Add(u);
db.SaveChanges();
EF 通过导航添加数据的更多相关文章
- 文章翻译:ABP如何在EF core中添加数据过滤器
原文地址:https://aspnetboilerplate.com/Pages/Documents/Articles%5CHow-To%5Cadd-custom-data-filter-ef-cor ...
- EF批量添加数据性能慢的问题的解决方案
//EF批量添加数据性能慢的问题的解决方案 public ActionResult BatchAdd() { using (var db = new ToneRoad.CEA.DbContext.Db ...
- ef添加数据时出错 System.Data.Entity.Infrastructure.DbUpdateConcurrencyException”类型的异常
找半天才找到 ef添加数据时出错原因:数据库表中没有主键 ,就算表中有自增列 Added方法也会报错: - this._db.SaveChanges() “this._db.SaveCh ...
- MVC学习笔记(三)—用EF向数据库中添加数据
1.在EFDemo文件夹中添加Controllers文件夹(用的是上一篇MVC学习笔记(二)—用EF创建数据库中的项目) 2.在Controllers文件夹下添加一个空的控制器(StudentsCon ...
- EF里Guid类型数据的自增长、时间戳和复杂类型的用法
通过前两章Lodging和Destination类的演示,大家肯定基本了解Code First是怎么玩的了,本章继续演示一些很实用的东西.文章的开头提示下:提供的demo为了后面演示效果,前面代码有些 ...
- EF方便的添加一条信息...
//刚开始通过EF添加数据都是这样的...↓ var db = new DBEntities() T_User t_userinfo = new T_User() { Type = "typ ...
- [搜索]ElasticSearch Java Api(一) -添加数据创建索引
转载:http://blog.csdn.net/napoay/article/details/51707023 ElasticSearch JAVA API官网文档:https://www.elast ...
- WithOne 实体关系引起 EF Core 自动删除数据
最近遇到了一个 EF Core 的恐怖问题,在添加数据时竟然会自动删除数据库中已存在的数据,经过追查发现是一个多余的实体关系配置引起的. modelBuilder.Entity<Question ...
- 20.1翻译系列:EF 6中自动数据迁移技术【EF 6 Code-First系列】
原文链接:https://www.entityframeworktutorial.net/code-first/automated-migration-in-code-first.aspx EF 6 ...
随机推荐
- tushare库:免费的python财经数据接口
tushare官网以及在线文档http://tushare.org/ 安装 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tus ...
- K8s容器编排
K8s容器编排 Kubernetes(k8s)具有完备的集群管理能力: 包括多层次的安全防护和准入机制 多租户应用支撑能力 透明的服务注册和服务发现机制 内建智能负载均衡器 强大的故障发现和自我修复能 ...
- MarkdownPad 2破解
MarkdownPad 2 是一款较不错的Markdown编辑器,可快速将文本转换为美观的HTML/XHTML的网页格式代码,且操作方便,用户可以通过键盘快捷键和工具栏按钮来使用或者移除Markdow ...
- 不使用已下载的package pip 安装 & 出现time out error
pip install XX + --no-cache-dir 安装出现time out error时: pip --default-timeout=10000 install XX
- 查看tensorflow是否为MKL版本命令
python -c "import tensorflow; print(tensorflow.pywrap_tensorflow.IsMklEnabled())" source a ...
- <BackTracking> dfs: 39 40
39. Combination Sum Combination,组合问题用DFS罗列全部的答案. class Solution { public List<List<Integer> ...
- CSS3中的px,em,rem,vh,vw
1.px:像素,精确显示 2.em:继承父类字体的大小,相当于“倍”,如:浏览器默认字体大小为16px=1em,始终按照div继承来的字体大小显示,进场用于移动端 em换算工具:http://www. ...
- [LeetCode] 554. Brick Wall 砖头墙壁
There is a brick wall in front of you. The wall is rectangular and has several rows of bricks. The b ...
- [LeetCode] 212. Word Search II 词语搜索之二
Given a 2D board and a list of words from the dictionary, find all words in the board. Each word mus ...
- SpringBootThymeleaf案例
一.添加依赖 <!-- 添加thymeleaf模版的依赖 --> <dependency> <groupId>org.springframework.boot< ...