开发者

SubSonic inner join mystery

开发者 https://www.devze.com 2022-12-19 06:34 出处:网络
I\'ve have 2 tables CampaignCoverage and Coverage CampaignCoverage has a CoverageID column. Coverage has a column DateX.

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

精彩评论

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

关注公众号