不确定这是否称为查找表...以下是架构的屏幕截图:http://apoads.com/db-schema.png
我想要做的是加入AdBa和MilBase表,其中MilBase.BaseID是给定值。在结果中,我希望能够像这样访问数据:ad.MilBase.BaseName等...
我现在似乎无法绕过这个问题......; /
答案 0 :(得分:1)
您的问题是您的架构具有Ad和MilBase之间多对多关系的语义,因此您希望在LINQ中执行此操作的真正期望方式是ad.Milbases,它将持有Milbases的收集。
LINQ To SQL不直接支持多对多关系,实际上(假设您的查找表只定义了一对一或一对一),问题就没有了。许多关系)你必须做类似
的事情ad.Adbases.Single().MilBase
当然假设总会有一个 - 如果情况并非如此,那么你面前会有更复杂的事情。
当然,加入也总是可行的 - 无论哪种方式 - 如果这不是您所寻找的信息,您能澄清Ad和Milbase之间的关系吗? (多对多,等等?)。另外 - 如果这不是多对多的,你可以这样做,我真的会把它改成Milbase或Ad表中的外键。
编辑:回应你的评论,
您可以执行类似
的操作var query = from a in db.ad
select new {
a.property1,
a.property2,
...
Milbases = a.Adbases.Select(s => s.Milbase)
};
显然代码不会编译,但它应该给你一个粗略的想法 - 我也确定它可以以更好的方式完成,但是这样的东西应该有效。