SubSonic 3.0.0.3 | SimpleRepository - SortBy [SubSonicIgnore] - PullRequest
1 голос
/ 24 августа 2009

Я получил класс с [SubSonicIgnore]:

[SubSonicIgnore]
        public string Name
        {
            get
            {
                return (FirstName ?? string.Empty) + ((MiddleName ?? string.Empty).Length > 0 ? " " + MiddleName + " " : " ") + (SurName ?? string.Empty);
            }
        }

всякий раз, когда я запускаю тест:

[Test]
        public void Can_Sort()
        {
            IUserRepository _repo = new SqlUserRepository();
            var users = _repo.GetUsers().OrderBy("Name");

Всегда выдает ошибку:

TestQueryableSorter.Can_Sort : FailedSystem.NotSupportedException: The member 'Name' is not supported

Я замечаю, что он нарушает только те свойства, которые имеют [SubSonicIgnore]. Это ошибка или по замыслу?

Я использовал класс из C: \ Program Files \ Microsoft Visual Studio 9.0 \ Samples \ 1033 \ CSharpSamples \ LinqSamples \ DynamicQuery.

1 Ответ

1 голос
/ 24 августа 2009

Вы пытаетесь заставить SubSonic упорядочить по столбцу, который вы явно указываете игнорировать. Это сделано специально, так как SubSonic не имеет понятия члена Name (вы говорите ему игнорировать это свойство, используя SubSonicIgnore), вы не можете упорядочить, выбрать или использовать это свойство в ваших запросах SubSonic. Глядя на свой код, вы, вероятно, могли бы сделать следующее:

[Test]
public void Can_Sort()
{
  IUserRepository _repo = new SqlUserRepository();
  var users = _repo.GetUsers().OrderBy("FirstNAme");
...