Linq操作与外键的联系

简介:

 

一个饭局有多个参与者

 

这是一些基本方法

   

    public class DinnerRepository:IDinnerRepository
    {
        NerdDinnerDataContext dc = new NerdDinnerDataContext();

        public IQueryable<Dinners> FindAllDinners()
        {
            return dc.Dinners;
        }

        public IQueryable<Dinners> FindUpComingDinners()
        {
            return from dinner in dc.Dinners
                   where dinner.EventDate > DateTime.Now
                   orderby dinner.EventDate
                   select dinner;
        }

        public Dinners GetDinner(int id)
        {
            return dc.Dinners.Where(d => d.DinnerID == id).FirstOrDefault();
        }

        public void Add(Dinners d)
        {
            dc.Dinners.InsertOnSubmit(d);
        }

 

        // 一个饭局有多个参与者

        // 删掉饭局,就要删掉参与者

        public void Delete(Dinners d)
       {
            // 删除与之为外键的信息
            dc.RSVP.DeleteAllOnSubmit(d.RSVP);
            dc.Dinners.DeleteOnSubmit(d);
       }

        public void Save()
        {
            dc.SubmitChanges();
        }
    }

 

那么我取消一个饭局,那么即必须把RSVP表与之相关的参与者也要删掉,那么linq提供了一个方便的方法

 

        public void Delete(Dinners d)
        {
            // 删除与之为外键的信息
            dc.RSVP.DeleteAllOnSubmit(d.RSVP);
            dc.Dinners.DeleteOnSubmit(d);
        }

 

 

下面的示例代码首先检索一个 dinner 对象,然后添加一个 RSVP 对象。这里,使用 Dinner 对象的 RSVPs
集合对象。当调用 Resposity 对象的 Save()方法时,一条新的记录添加 RSVP表中。

 

DinnerRepository dinnerRepository = new DinnerRepository(); 
Dinner dinner = dinnerRepository.GetDinner(5); 
 
RSVP myRSVP = new RSVP();
myRSVP.AttendeeName = "ScottGu"; 
dinner.RSVP.Add(myRSVP); 

dinnerRepository.Save();

目录
相关文章
|
Swift
Swift 设置阴影
阴影的设置是通过layer的shadow设置的,其中offset为阴影的偏移量,探索下offset是如何影响阴影显示的
874 0
Swift 设置阴影
|
9月前
|
弹性计算 人工智能 数据管理
AI场景下的对象存储OSS数据管理实践
本文介绍了ECS和OSS的操作流程,分为两大部分。第一部分详细讲解了ECS的登录、密码重置、安全组设置及OSSUTIL工具的安装与配置,通过实验创建并管理存储桶,上传下载文件,确保资源及时释放。第二部分则聚焦于OSSFS工具的应用,演示如何将对象存储挂载为磁盘,进行大文件加载与模型训练,强调环境搭建(如Conda环境)及依赖安装步骤,确保实验结束后正确清理AccessKey和相关资源。整个过程注重操作细节与安全性,帮助用户高效利用云资源完成实验任务。
901 161
|
9月前
|
数据采集 数据可视化 数据挖掘
利用Python自动化处理Excel数据:从基础到进阶####
本文旨在为读者提供一个全面的指南,通过Python编程语言实现Excel数据的自动化处理。无论你是初学者还是有经验的开发者,本文都将帮助你掌握Pandas和openpyxl这两个强大的库,从而提升数据处理的效率和准确性。我们将从环境设置开始,逐步深入到数据读取、清洗、分析和可视化等各个环节,最终实现一个实际的自动化项目案例。 ####
1588 10
|
9月前
|
机器学习/深度学习 算法 TensorFlow
深度学习中的自编码器:从理论到实践
在这篇文章中,我们将深入探讨深度学习的一个重要分支——自编码器。自编码器是一种无监督学习算法,它可以学习数据的有效表示。我们将首先介绍自编码器的基本概念和工作原理,然后通过一个简单的Python代码示例来展示如何实现一个基本的自编码器。最后,我们将讨论自编码器的一些变体,如稀疏自编码器和降噪自编码器,以及它们在实际应用中的优势。
|
机器学习/深度学习 传感器 编解码
史上最全 | BEV感知算法综述(基于图像/Lidar/多模态数据的3D检测与分割任务)
以视觉为中心的俯视图(BEV)感知最近受到了广泛的关注,因其可以自然地呈现自然场景且对融合更友好。随着深度学习的快速发展,许多新颖的方法尝试解决以视觉为中心的BEV感知,但是目前还缺乏对该领域的综述类文章。本文对以视觉为中心的BEV感知及其扩展的方法进行了全面的综述调研,并提供了深入的分析和结果比较,进一步思考未来可能的研究方向。如下图所示,目前的工作可以根据视角变换分为两大类,即基于几何变换和基于网络变换。前者利用相机的物理原理,以可解释性的方式转换视图。后者则使用神经网络将透视图(PV)投影到BEV上。
史上最全 | BEV感知算法综述(基于图像/Lidar/多模态数据的3D检测与分割任务)
|
9月前
|
存储 供应链 数据库
Hologres 索引:概念与实用场景
本文介绍了 Hologres 索引的概念、类型及在实际场景中的应用。Hologres 是阿里云的一款强大数据库产品,其索引功能显著提升了数据查询性能。文章详细探讨了 B 树索引、哈希索引和位图索引的特点及应用场景,并介绍了索引的创建和维护方法。此外,还列举了 Hologres 中的重要参数设置及其使用限制,最后通过电商、金融、物流和社交媒体等领域的具体案例,展示了索引在不同场景下的实用价值。
294 10
|
机器学习/深度学习 人工智能 自然语言处理
使用 Java 进行自然语言处理(NLP)
【4月更文挑战第19天】自然语言处理(NLP)让计算机理解人类语言,Java作为广泛应用的编程语言,在NLP中扮演重要角色。NLP应用于智能客服、机器翻译、情感分析和文本分类等领域。Java因丰富库支持、高性能和跨平台性成为NLP开发的理想选择。关键技術包括词法分析、句法分析、语义理解和文本向量化。Stanford NLP和OpenNLP是Java中的知名NLP库。开发流程涉及数据准备、选择库、特征工程、模型训练、评估和部署。随着NLP技术进步,Java在该领域将持续发挥影响力。
1314 2
|
域名解析 缓存 JavaScript
再次搞定 Ali 云函数计算 FC
原本早就该写完了微信 SDK 授权服务上云计划由于对 Ali 云函数计算 FC 的不熟悉遇到了很多的坑,再前面的文章中还吐槽了一通。在服务顺利跑通后,这回实打实的来总结一下顺利上云的保守指南~
26596 4
再次搞定 Ali 云函数计算 FC
|
IDE 项目管理 开发工具
Android Studio开发Android APP
Android Studio 是谷歌推出的一个Android集成开发工具,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调试。 Android Studio 主窗口由下图标注的几个逻辑区域组成:
624 0
|
机器学习/深度学习 编解码 人工智能
视频分辨率的历史发展,未来趋势是什么?
随着技术的不断发展,视频分辨率也在不断提高。视频分辨率是指视频图像中可显示的像素数量,通常表示为水平像素数和垂直像素数。它对于观看视频时的清晰程度和细节呈现有着重要的影响。 本文将会介绍视频分辨率的基本概念,包括单位、历史发展、标准和未来趋势。我们还会探讨视频分辨率对观影体验的影响以及如何选择适合自己设备的视频分辨率。 无论您是电影爱好者还是普通用户,通过本文,您将能够了解到视频分辨率在过去的发展历程和未来的趋势,从而更好地使用和享受视频娱乐。
视频分辨率的历史发展,未来趋势是什么?