private IEnumerable<string> GetFullTextSearchProperties(FullTextSearchTargetPropertiesMode fullTextSearchTargetPropertiesMode) { var criteriaBuilder = new SearchCriteriaBuilder(View.ObjectTypeInfo) {IncludeNonPersistentMembers = false}; switch (fullTextSearchTargetPropertiesMode) { case FullTextSearchTargetPropertiesMode.AllSearchableMembers: criteriaBuilder.FillSearchProperties(); criteriaBuilder.AddSearchProperties(GetShownProperties()); break; case FullTextSearchTargetPropertiesMode.VisibleColumns: var shownProperties = new List<string>(GetShownProperties()); string friendlyKeyMemberName = FriendlyKeyPropertyAttribute.FindFriendlyKeyMemberName(View.ObjectTypeInfo, true); if (!string.IsNullOrEmpty(friendlyKeyMemberName) && !shownProperties.Contains(friendlyKeyMemberName)) { shownProperties.Add(friendlyKeyMemberName); } criteriaBuilder.SetSearchProperties(shownProperties); break; default: throw new ArgumentException(fullTextSearchTargetPropertiesMode.ToString(), "fullTextSearchTargetPropertiesMode"); } return criteriaBuilder.SearchProperties; }