开发者

SubSonic inner join mystery

I've have 2 tables CampaignCoverage and Coverage

CampaignCoverage has a CoverageID column. Coverage has a column DateX.

Basically I've not specified in the开发者_如何学运维 code that CampaignCoverage.CoverageID = Coverage.ID like you would to in SQL. How does this work at all????!!!!

CampaignCoverageCollection campaignCoverages = 
    new Select()
        .From(Tables.CampaignCoverage)
        .InnerJoin(Tables.Coverage)                               
        .Where(Coverage.DateXColumn).IsGreaterThan(ucDateStart.DateTime)
        .And(Coverage.DateXColumn).IsLessThan(ucDateEnd.DateTime)
        .And(CampaignCoverage.CampaignIDColumn).IsEqualTo(campaign.Id)
        .ExecuteAsCollection<CampaignCoverageCollection>();


If you have not specified that CampaignCoverage.CoverageID is a foreign key to Coverage.ID (I think that is what you are trying to say), then getting rid of the join should do the trick. i.e. Remove

.InnerJoin(Tables.Coverage)

That said, you probably do want to make a CampaignCoverage.CoverageID a foreign key to Coverage.ID. After you do that, you can get rid of the IsEqualTo clause. i.e. Remove

.And(CampaignCoverage.CampaignIDColumn).IsEqualTo(campaign.Id)
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜