この 3 つのテーブルを照会するには、助けが必要です。RentCommunityFeature と RentPropertyFeature は、RentUnitListing と多対多の関係にあります。私の問題は、これら 3 つのテーブルをクエリすることができないことです。私が欲しいのは、特定の機能を備えたすべての賃貸物件です。たとえば、RentCommunityFeature に「プール」があり、RentPropertyFeature に「駐車場」がある場合、「プール」と「駐車場」を持つ RentUnitListing のすべてのレコードが必要です。駐車場がない場合、結果は「プール」のみで表示されます。
以下のクエリを試しましたが、正しくない結果が得られます。myCommunityFeatureId または myPropertyFeatureId が -1 の場合、重複した結果が表示されます。DBで空の場合、それらを-1に初期化しました。
どんな助けでも大歓迎です。
var AllAds = from r in _db.RentUnitListings
from cf in r.RentCommunityFeatures
from pf in r.RentPropertyFeatures
where (myCommunityFeatureId > 0) ? (cf.RentCommunityFeatureID == myCommunityFeatureId && cf.RentUnitListings.) : (myCommunityFeatureId == -1)
where (myPropertyFeatureId > 0) ? (pf.RentPropertyFeatureID == myPropertyFeatureId) : (myPropertyFeatureId == -1)
select r;
public partial class RentCommunityFeature
{
public int RentCommunityFeatureID { get; set; }
public string RentCommunityFeatureDescription { get; set; }
public virtual ICollection<RentUnitListing> RentUnitListings { get; set; }
}
public partial class RentPropertyFeature
{
public int RentPropertyFeatureID { get; set; }
public string RentPropertyFeatureDescription { get; set; }
public virtual ICollection<RentUnitListing> RentUnitListings { get; set; }
}
public partial class RentUnitListing
{
public Guid RentUnitListingID { get; set; }
public string RentUnitListingShortDescription { get; set; }
public virtual ICollection<RentCommunityFeature> RentCommunityFeatures { get; set; }
public virtual ICollection<RentPropertyFeature> RentPropertyFeatures { get; set; }
}