EF Code first主从表,删除更新从表

以order和orderItem为例,从表orderItem里有主表的orderId

想通过order.orderitems.add()或者remove()方法直接更新从表的话,必须在从表建立联合主键才可以

在DbContext里的OnModelCreating方法里加上

modelBuilder.Entity<OrderItem>().HasKey(t => new { t.Id, t.OrderId });
modelBuilder.Entity<OrderItem>().Property(s => s.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);

这样在执行迁移命令,就会生成联合主键,删除或者添加从表信息就可以通过order.orderitems.add()或者remove()进行直接操作了

原文地址:https://www.cnblogs.com/xiaozhu39505/p/11002921.html

时间: 2024-10-29 09:32:58

EF Code first主从表,删除更新从表的相关文章

sql语句中3表删除和3表查询

好久没来咱们博客园了,主要近期在忙一些七七八八的杂事,包括打羽毛球比赛的准备和自己在学jqgrid的迷茫.先不扯这些没用的了,希望大家能记得小弟,小弟在此谢过大家了. 回归正题:(以下的sql是本人在用yii框架开发项目时写的,希望对大家有些帮助) 首先是多表查询,为了简化我先贴出自己的代码,在贴出解释代码. select a.*, b.*, c.* from rlzy_payfeeinf a inner join rlzy_personinfo b on a.bid=b.bid join rl

MySQL基础入门学习【10】多表删除

DELETE tbl_name [.*] [, tbl_name[.*]]... FROM table_references [WHERE where_condition] 现在想把重复的记录删除掉,保留id号比较小的记录. 一张表模拟多表删除来实现: (1) 查找重复记录 (2) 参照这张表来删除上面那个表中的数据 [涉及 子查询.连接.多表更新.多表删除 : 多表操作时实现了自身的连接:通过自身的连接删除重复的记录] 原文地址:https://www.cnblogs.com/jade-91/

EF Code Frist 删除数据库中的表 再次迁移报错 解决方法参考文档地址

EF Code First Migrations数据库迁移 http://www.cnblogs.com/libingql/p/3330880.html EntityFramework之多对多关系 http://www.cnblogs.com/zuqing/p/5452356.html EF Code First 导航属性 与外键 http://www.cnblogs.com/liangxiaofeng/p/5809451.html

单表的更新UPDATE和删除记录DELETE

当把记录写成功之后,也许我们还会如下操作.比如,记录在书写的过程中字段是错误的.或者,我们想改下字段值.那么,我们需要update关键字. update分为单表更新和多表更新. 一.UPDATE语句 UPDATE语句其实有两种方式,分别是单表更新和多表更新,多表更新等到后面我们学完连接以后再去学习,所以今天我们先来学习单表更新,我们先来看一下语法结构: 更新记录(单表更新) UPDATE [LOW_PRIORITY] [IGNORE] table_reference SET col_name1=

EF Code First更新数据库时报错:provider: SQL Network Interfaces, error: 26

在使用EF Code First更新数据库时报如下错误: 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误.未找到或无法访问服务器.请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接. (provider: SQL Network Interfaces, error: 26 - 定位指定的服务器/实例时出错) 以为是Sql Server的配置问题,作如下尝试: →打开Sql Server配置管理器,即"Sql Server Configuraiotn

C# DataAdapter.Update() 无法更新数据表中删除的数据行

用DataAdapter.Update() 方法更新删除了部分DataRow 的 DataTable .但是数据库中的数据没有随着更新而变化. 原因:DataTable 删除 DataRow 时,使用的是DataTable.Rows.Remove(DataRow ) 或 DataTable.Rows.RemoveAt(DataRowIndex) 方法. 解决方法:使用 DataTable.Rows[rowIndex].Delete() ; 方法删除数据. 详解如下: DataAdapter.Up

MVC Code First 当实体类发生变化时,如何自动更新数据库表

下面做一个例子,Category是用户新建的一个实体类,然后添加一个字段,然后让数据库中的Category表也添加一个字段 1.Category.cs using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text; namespace BlogAppDAL.Entities { public clas

从零开始,搭建博客系统MVC5+EF6搭建框架(1),EF Code frist、实现泛型数据仓储以及业务逻辑

前言      从上篇30岁找份程序员的工作(伪程序员的独白),文章开始,我说过我要用我自学的技术,来搭建一个博客系统,也希望大家给点意见,另外我很感谢博客园的各位朋友们,对我那篇算是自我阶段总结文章的评论,在里面能看出有很多种声音,有支持的我的朋友给我加油打气,有分享自己工作经历的朋友,有提出忠肯意见的朋友,有对记事本写代码吐槽的朋友,也有希望让我换个行业的,觉得我可能不适合这个行业朋友,不管怎样,我都接受,都是大家同行的一些忠告,谢谢大家. 首先我要在这里感谢很多博客园里面的大牛,写了很多系

EF Code First Migrations数据库迁移

http://www.cnblogs.com/libingql/p/3330880.html 1.EF Code First创建数据库 新建控制台应用程序Portal,通过程序包管理器控制台添加EntityFramework. 在程序包管理器控制台中执行以下语句,安装EntityFramework. PM> Install-Package EntityFramework 安装成功后,界面提示如下图: 在新建的Portal控制台应用程序中添加两个实体类,代码结构如下: 其中,类文件PortalCo