我刚刚完成了使用Linq to Sql映射我们现有的数据库结构以供胖客户端应用程序使用。
在编写一些Linq方法来替换某些存储过程时,我注意到有时我可以执行tblOne.tblTwo.MyDesiredField
。我了解到,dbml中需要有一个association
才能起作用。好吧,我的确缺少一些明显的东西,所以我加了一堆。
那是当我注意到有时我无法执行上述操作时,因为某些关联表被视为EntitySets<tblThree>
而不是表,即tblThree
本身吗?
对我来说,我得到的东西似乎没有押韵或理由。我在dbml
中做错了吗?我需要在Properties
中进行更改吗?
这值得关注吗?我注意到要使用EntitySet<tblThree>
,我需要添加一个额外的from
。
from person in context.tblPersons
from address in person.tblAddress where address.AddressType == "Home"
select new {person.Name, address.Home};
最佳答案
EntitySet是一个结果集。如果tableA与tableB具有一对多关系,则tableA.tableB引用tableB中的结果集合,该结果引用tableA中的结果。
桌子就是桌子。如果使用设计器进行拖放,您会发现它使entitySets多元化,从而使事情更具可读性。
编辑:我想象从您的设置的声音,您可能会看到如下所示的entitySet
from b in TableA select b.TableB
在这种情况下,TableA是一个表,而b.TableB是EntitySet
关于c# - 是什么使LINQ关联成为EntitySet <table>?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2736953/