2010-02-01 3 views
0

У меня есть 2 таблицы CampaignCoverage и CoverageSubSonic внутреннее соединение тайны

CampaignCoverage есть столбец CoverageID. Покрытие имеет столбец DateX.

В принципе, я не указал в коде, что CampaignCoverage.CoverageID = Coverage.ID, как в SQL. Как это работает вообще ???? !!!!

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>(); 

ответ

1

Если вы не указали, что CampaignCoverage.CoverageID является внешним ключом к Coverage.ID (я думаю, что это то, что вы пытаетесь сказать), то избавившись от объединения должны сделать трюк. т.е. удалить

.InnerJoin(Tables.Coverage) 

, что сказал, вы, вероятно, хотите сделать CampaignCoverage.CoverageID внешним ключом к Coverage.ID. После этого вы можете избавиться от предложения IsEqualTo. т.е. Удалить

.And(CampaignCoverage.CampaignIDColumn).IsEqualTo(campaign.Id) 
Смежные вопросы