nameZh property
Prefers the offering's timetable value; falls back to the catalog value when the offering's value is null. Always returns the offering's name in Chinese, since CourseOfferings.nameZh is NOT NULL.
Implementation
Expression<String> get nameZh =>
coalesce([courseOfferings.nameZh, courses.nameZh]);