在多語言數據庫中,我有以下表格:實體框架 - 複雜的查詢最佳實踐
- 區& AreaLocale:區域包含緯度/經度/ areaID表示& AreaLocale包含ID /名稱/說明/ areaID表示/ CultureId
- 國家& CountryLocale:國家包含緯度/經度/ CountryId & CountryLocale包含ID /名稱/說明/ CountryId/CultureId
- 文化:包含ID /名稱/顯示名稱
現在,我需要的是找回如下:
areaID表示/名稱/說明/經度/緯度/ CountryId /國家名稱/ CultureId /文化顯示名稱,如該區域的請將isDeleted =假。
下面的查詢寫的是:
var q = (from areas in context.Areas
join countries in context.Countries on areas.CountryId equals countries.CountryId
join arealocales in context.AreaLocales on areas.AreaId equals arealocales.AreaId
join cultures in context.Cultures on arealocales.CultureId equals cultures.CultureId
join countrylocales in context.CountryLocales on areas.CountryId equals countrylocales.CountryId
where areas.IsDeleted == false
select new Area()
{
CountryId = areas.CountryId,
CountryName = countrylocales.Name,
CultureId = cultures.CultureId,
CultureDisplayName = cultures.DisplayName,
Description = arealocales.Description,
Id = areas.AreaId,
Latitude = areas.Latitude,
Longitude = areas.Longitude,
Name = arealocales.Name
}).ToList();
是否有書面上面的查詢,而不是使用聯接和使用UnionAll而不是一個更好的辦法?
您是否在模型中有導航屬性,例如'public ICollection AreaLocales {get;組; }'和'公共國家國家{get;組; ''在'Area'類中,等等?如果你有這些,你根本不需要任何手寫連接。 –
Slauma
2012-03-24 23:40:37
事實上,我有以下內容:區域AreaLocales,區域實體Country country和國家CountryLocale List。如何實現與上述相同的目標?謝謝 – Bill 2012-03-24 23:54:40