我刚刚完成了使用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/

10-13 03:14