'ArrayIndex' не поддерживается в LINQ to Entities

ArrayIndex не поддерживается в LINQ to Entities.

 var result = uow.Repository<T_Tenant_Sub_PortalSetting>().Search(x => x.StudentPortalUrl.Split('/')[0].ToString() == filterContext.HttpContext.Request.Url.Host 
            && (string.IsNullOrEmpty(x.StudentPortalUrl.Split('/')[1].ToString())) ? true : x.StudentPortalUrl.Split('/')[1].ToString() == WebConfigurationManager.AppSettings["VirtualDirectoryName"])
            .IncludeEntity(x => x.T_Tenant_Sub).AsEnumerable().FirstOrDefault();

дубликат: stackoverflow.com/questions/45681514/…

Jazb 31.10.2018 06:28

думаю, не дублировать. моя проблема - .. разделить строку из базы данных

DD Naw Smith 31.10.2018 06:36

Вы используете [1] в результате Split - массива, который вы индексируете. Следовательно, ArrayIndex не поддерживается.

NetMage 31.10.2018 21:33
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
4
259
1

Ответы 1

  1. вы можете получить всех учащихся {id, url} в памяти, затем вы можете использовать разделение по URL-адресу.
  2. создайте массив с типом ключа вашей сущности (например, int [], если ваш идентификатор - int) после выполнения ваших проверок в зависимости от хоста и ....
  3. затем вы можете отправить массив в базу данных для выборки выбранных строк

//imagine this list is my entities IDbSet<...>
List<MyClass> myClasses = new List<MyClass>();

//you can read all entities {id,url} in RAM
Dictionary<int, string> keyValues = 
                new Dictionary<int, string>();


myClasses
.Where(x => true/*some conditions here*/)
.Select(x => new { x.Id, x.Url })
.ToList()//here data fetched from db
.ForEach(x => keyValues.Add(x.Id, x.Url));

//now you can use split

int[] SelectedIds = keyValues
                .Where(x => x.Value.Split('/')[0] == "host"
                        /*&& another conditions here*/)
                .Select(x=>x.Key)
                .ToArray();

//now you can pass an array to db for fetching data

//as dbset
myClasses
    .Where(x => 
        SelectedIds.Contains(x.Id));

    int[] SelectedIds = keyValues.Where(x => x.Value.Split('/')[0] == "host"/*&& another conditions here*/)
        .Select(x=>x.Key)
        .ToArray();

    //now you can pass an array to db for fetching data

    //as dbset
    myClasses.Where(x => SelectedIds.Contains(x.Id));

Другие вопросы по теме