2
我想避免3部分連接,我想直接到我的第三個表名稱,但林新到LINQ到SQL和林不知道我需要如何設置一切到最多正常工作。的我在做什麼,但不想做的一個例子是:設置LINQ到SQL上下文
from x in currentLogs
join y in cDataContext.CategoryCountryCategoryTypeMappings
on x.CategoryCountryCategoryTypeMappingID equals y.CategoryCountryCategoryTypeMappingID
join cat in cDataContext.Categories
on y.CategoryID equals cat.CategoryID
where x.Response != 0 && cat.StorefrontID==storeID
select x).Count();
我想要做的是:
from x in currentLogs
join y in cDataContext.Categories
on x.CategoryCountryCategoryTypeMappingID equals y.CategoryCountryCategoryTypeMapping.CategoryCountryCategoryTypeMappingID
where x.Response != 0 && y.StorefrontID==storeID
select x).Count();
,但我得到一個錯誤時,返回
cat.CategoryCountryCategoryTypeMapping.CategoryCountryCategoryTypeMappingID
通過我自動生成的dbml,Sequence不止是一個實體。
我的佈局是這樣的:
DownloadLog到cccmapping是一對一的,一切是一對多。我可能會搞砸了一點,但是下載日誌記錄了一個cccMapping,因爲cccmapping有國家類別和分類類型的排列,每個排列都是唯一的。不知道這是否使映射表一對一,或一對多。以太的方式,我建立我的背景權利做我即將做的事情?
爲什麼你想避免3表連接?在無論如何要發生的場景下 –
它可能很小,但代碼簡單/可讀性。如果cccMappings有一個類別,並且該類別有一個名稱,那麼在代碼中說明cccMappings.categories.select(...)。名稱 –
爲什麼不使用類別爲Category.CategoryCountryCategoryTypeMappings的導航屬性在類模型中?你可能根本不需要單一連接。 –