Как я могу преобразовать int в логическое значение в ядре entityframework? - PullRequest
0 голосов
/ 02 февраля 2020

Вот две таблицы, одна с именем State, другая с именем WorkingOn.

workers_name    state
aaa             onduty
bbb             offduty
ccc             onduty
ddd             onduty
workers_name    working_on
aaa             projectA
aaa             projectB
aaa             projectC
bbb             projectB
bbb             projectC

Теперь мне нужно показать, занят ли дежурный работник или свободен во входной группе. Таблица WorkingOn должна записывать детали того, над чем работники работают, и я не могу ее изменить.

Поэтому я установил для логического значения Busy значение true, пока есть работа (нет независимо от того, сколько проектов работает над рабочим) для работника и установите для логического значения Busy значение false, когда для работника нет работы.

По моему мнению, возможно, мне следует получить счет проекта над чем работают рабочие, а затем конвертируют счет в логическое значение. Несмотря на то, что это теоретически работает, я считаю, что это приведет к напрасной потере производительности, так как ему нужно будет провести поиск по всем показателям проекта, над которыми работают работники. В таблице WorkingOn будут миллионы данных, которые я должен об этом подумать.

Вот модель, в которую должна преобразоваться среда Entity:

public class WorkerStatus
{
   public string workers_name{get;set;}
   public boolean busy{get;set;}
}

И вот это модель базы данных:

public class TestDBContext : DbContext
        {
            public virtual DbSet<statemodel> state { get; set; }
            public virtual DbSet<workingonmodel> workingon { get; set; }

            protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
            {
                optionsBuilder.UseSqlite("Data Source=123.db");
            }
            public TestDBContext(DbContextOptions options) : base(options)
            {

            }

        protected TestDBContext()
        {
        }
        protected override void OnModelCreating(ModelBuilder builder)
        {
            builder.Entity<statemodel>().HasNoKey();
            builder.Entity<workingonmodel>().HasNoKey();
            base.OnModelCreating(builder);
        }
    }
public class statemodel
    {
        public string name { get; set; }
        public string state { get; set; }

    }
public class workingonmodel
    {
        public string name { get; set; }
        public string working { get; set; }

    }

Как я могу решить эту проблему? Спасибо.

1 Ответ

0 голосов
/ 03 февраля 2020

Наконец-то я нашел такой способ:

var workerInQuestion = state.Select(X => new
            {
                name = X.name,
                busy = workingon.Any(Y => Y.name == X.name)
            }) ;

Теперь все работает хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...