ActiveRecord三角关系如何写?

问题描述

classA:ActiveRecordBase{publicintAID{get;set;}publicintANAME{get;set;}}classB:ActiveRecordBase{publicintAID{get;set;}publicintBID{get;set;}publicintBNAME{get;set;}}classC:ActiveRecordBase{publicintAID{get;set;}publicintCID{get;set;}publicintCNAME{get;set;}}A->B,A->C全是一对多的关系。条件:如果满足BID=3(某一指定的值)或者CID=5的所有A数据如何来写。

解决方案

本帖最后由 chybaby 于 2011-12-19 13:17:00 编辑
解决方案二:
该回复于2011-12-19 13:54:07被版主删除
解决方案三:
List<A>.Where(a=>List<C>.Where(c=>c.CID==5).Contains(a.AID))
解决方案四:
引用2楼sandy945的回复:

List<A>.Where(a=>List<C>.Where(c=>c.CID==5).Contains(a.AID))

+1
解决方案五:
privatevoidbutton1_Click(objectsender,EventArgse){Aa1=newA();Aa2=newA();Bb1=newB();Bb2=newB();Bb3=newB();Bb4=newB();Cc1=newC();Cc2=newC();Cc3=newC();Cc4=newC();a1.AID=1;a1.ANAME=1;a2.AID=2;a2.AID=2;b1.AID=1;b1.BID=1;b1.BNAME=1;b2.AID=1;b2.BID=2;b2.BNAME=2;b3.AID=2;b3.BID=3;b3.BNAME=3;b4.AID=2;b4.BID=4;b4.BNAME=4;c1.AID=1;c1.CID=1;c1.CNAME=1;c2.AID=1;c2.CID=2;c2.CNAME=2;c3.AID=2;c3.CID=3;c3.CNAME=3;c4.AID=2;c4.CID=4;c4.CNAME=4;Managermanager=newManager();manager.InsertA(refa1);manager.InsertA(refa2);manager.InsertB(refb1);manager.InsertB(refb2);manager.InsertB(refb3);manager.InsertB(refb4);manager.InsertC(refc1);manager.InsertC(refc2);manager.InsertC(refc3);manager.InsertC(refc4);List<A>listA=manager.GetByBID(1);foreach(AainlistA){MessageBox.Show(a.AID.ToString());}}}}classActiveRecordBase{}classA:ActiveRecordBase{publicintAID{get;set;}publicintANAME{get;set;}}classB:ActiveRecordBase{publicintAID{get;set;}publicintBID{get;set;}publicintBNAME{get;set;}}classC:ActiveRecordBase{publicintAID{get;set;}publicintCID{get;set;}publicintCNAME{get;set;}}classManager{privateList<A>listA=null;privateList<B>listB=null;privateList<C>listC=null;publicManager(){listA=newList<A>();listB=newList<B>();listC=newList<C>();}~Manager(){listA.Clear();listB.Clear();listC.Clear();}publicvoidInsertA(refAa){listA.Add(a);}publicvoidInsertB(refBb){listB.Add(b);}publicvoidInsertC(refCc){listC.Add(c);}publicList<A>GetByBID(intID){varlistAnonymousTypes=(frombain(frombinlistBwhereb.BID==IDselectb.AID).ToList()fromainlistAwherea.AID==baselecta).ToList();returnlistAnonymousTypes;}}

时间: 2025-01-01 22:03:48

ActiveRecord三角关系如何写?的相关文章

开放式论坛:用户、价值、服务的三角关系

第1页: 第2页: 开放式论坛:用户.价值.服务的三角关系 和讯科技消息 9月11日-14日,2012(第十一届)中国互联网大会在北京国际会议中心举行.本届会议以"开放·诚信·融合--迎接移动互联新时代"为主题,并针对互联网.移动互联网.电子商务.网络营销.云计算.物联网.网络安全.创新创业等十多个细分领域进行深入探讨.和讯科技对本次大会进行全程报道. 滚石移动集团高级副总裁张新华.易宝支付首席执行官及共同创始人唐彬.大众点评联合创始人龙伟.安恒信息总裁范渊先生.风行网CEO罗江春参与

图解prototype、proto和constructor的三角关系_基础知识

javascript里的关系又多又乱.作用域链是一种单向的链式关系,还算简单清晰:this机制的调用关系,稍微有些复杂:而关于原型,则是prototype.proto和constructor的三角关系.本文先用一张图开宗明义,然后详细解释原型的三角关系 图示 概念 上图中的复杂关系,实际上来源就两行代码 function Foo(){};var f1 = new Foo; [构造函数] 用来初始化新创建的对象的函数是构造函数.在例子中,Foo()函数是构造函数 [实例对象] 通过构造函数的new

解析黄晓明李冰冰周迅单干传闻三角关系交错

周迅黄晓明李冰冰 本报讯 近日有传言称华谊兄弟旗下的多位大牌明星包括周迅.李冰冰.黄晓明等纷纷约满,并都选择不再续约.对此华谊兄弟总裁王中磊近日首度开口回应,表示周迅已于上个月约满,且不会再续约.王中磊昨日对本报记者表示自己对此事的态度是"尊重并支持周迅的决定",不过记者对此事采访周迅方面的相关工作人员时,他们则采 取了"集体封口"的态度.而对于李冰冰和黄晓明,王中磊则透露"还在就新合约细节与公司协商中". 黄晓明李冰冰续约一事尚在协商 大牌艺人

解读戴尔,惠普和思科的“三角关系”

戴尔 众所周知,戴尔收购EMC,其中EMC组件部分包括EMC II,VMware,RSA,Pivotal和Virtustream,为戴尔提供多样化方式增益收入流,但对竞争可不是什么好兆头. 在这里要说的关键是营收多样化.戴尔因为其以前的方案走不通而走向私有化,现在又花费了670亿美元的天价收购EMC,可能导致其"插足"不同领域,以满足一些覆盖其客户群要求整体的一些需要. 更重要地是,戴尔获得了研究开发能力,EMC的各种子组件都是重型工业机构,这里还有一些顶级人才每天都在为推进IT技术发

跟我一起写 Makefile

陈皓 概述 -- 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和 professional的程序员,makefile还是要懂.这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解 HTML的标识的含义.特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写makefile,从一个侧面说明了一个人是否具备完 成大型工程的能力. 因为,makefile关系到

Soft Updates:一项消除大多数同步写操作的技术(二)

第3节 跟踪并确保更新依赖关系 本节描述BSD Soft Updates数据结构,以及它在保证第二节中描述的更新依赖关系中发挥的作用.这里描述的数据结构和算法能在除文件截断和fsync系统调用以外的所有情况中完全消除BSD FFS的同步写入操作. SoftUpdates的关键特性是在缓存块中追踪每个更改之间的更新依赖关系.于是,对包括64个i-节点的块,系统可能会为缓冲区中的这些i-节点维护最多64个依赖关系结构.类似地,对包含50个名字的目录块,系统也会为这些名字维护最多50个依赖关系结构.

【转载】跟我一起写 Makefile

跟我一起写 Makefile陈皓 (CSDN)概述--什么是makefile?或许很多Winodws 的程序员都不知道这个东西,因为那些Windows 的IDE 都为你做了这个工作,但我觉得要作一个好的和professional 的程序员,makefile 还是要懂.这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML 的标识的含义.特别在Unix 下的软件编译,你就不能不自己写makefile 了,会不会写makefile,从一个侧面说明了一个人是否具备完成

从需求出发来看关系模型与非关系模型--时代的变革1

上次我们谈到,因为互联网应用的实际需求与传统数据库之间出现了不匹配的情况.   于是,破坏与重构就成为了新时代的主音.   对互联网应用而言,最急需的需求,就是处理大量用户输入的海量数据,进行一些逻辑处理后再将结果返回给用户.因此,对于在线数据处理来说,可水平扩展的容量指标,可无限增长的写入tps和读取qps,是互联网企业的最大,最急需的需求.   相比较而言,为了追求性能和容量的尽可能最大化,其他的指标则被迫的推到了后面.这也非常容易理解,性能不够,容量不够,直接面临的是不能提供服务,作为互联

[Fluent NHibernate]一对多关系处理

目录 写在前面 系列文章 一对多关系 总结 写在前面 上篇文章简单介绍了,Fluent Nhibernate使用代码的方式生成Nhibernate的配置文件,以及如何生成持久化类的映射文件.通过上篇的学习你会发现,Fluent Nhibernate仍然需要引用Nhibernate的两个程序集(Nhibernate.dll和Iesi.Collections.dll),所以与Nhibernate最大的区别就在生成配置文件的方式上面,这里关于Nhibernate的特性方面就不再多赘述,可以参考Nhib