Как отфильтровать запись с помощью Entity Framework и отобразить в таблицах данных

#entity-framework #linq #datatables

#entity-framework #linq #таблицы данных

Вопрос:

У меня есть запрос (allResponse), который я могу отобразить в своем представлении с помощью таблиц данных:

 var allResponse = from r in table1
                  select r;

var students = from a in table2
               select a;
  

Это то, что я попробовал после предложений:

 [HttpGet]
    public IHttpActionResult GetFormResponse()
    {

        //get list of student that match advisor star id only
        //NEXT TASK

         var advisorStarId =  @User.Identity.Name.Substring(User.Identity.Name.IndexOf("\")   1);

        //List of all student that belong to advior signed in starId

        var students = from a in _db.ST_ADV_STARID
                .Where(a => a.ADV_STAR_ID == advisorStarId)
                select a;
        //List of all responses

        var allResponse = from r in db.GETTING_TO_KNOW_FORM
                          select r;

        var query = from a in allResponse
                    join b in students on a.STAR_ID equals b.STU_STAR_ID into c
                    from x in c.DefaultIfEmpty()
                    select new
                    {
                        STAR_ID = a.STAR_ID,
                        PREFERRED_NAME = a.PREFERRED_NAME
                    };

      



        
        return Ok(query);
       
    }
  

Решается путем перемещения класса контекста в тот же файл

Но я хотел бы отображать только записи из table1, которые имеют starId, соответствующий starId из table2, и я все еще хотел бы, чтобы все поля из table1 я пытался слишком долго. Я думаю, что хотел бы получить некоторую помощь

Помогите? Предложения?

Спасибо!

Комментарии:

1. Таблицы подключены?

2. Да, они подключены к базе данных

3. Итак, вы хотите объединить две таблицы, где table1.starId = table2.starId ?

4. Да, это верно

5. Вам следует опубликовать некоторые подробности об отношениях, но, вероятно, вы можете использовать левое соединение learn.microsoft.com/en-us/dotnet/csharp/linq /…

Ответ №1:

Вы можете попробовать что-то вроде

 var reselt = from t1 in table1
    join t2 in table2 on t1.STAR_ID equals t2.STU_STAR_ID
    select new
    {
       TABLE1 = t1,
       TABLE2 = t2
    };
  

Если вы хотите получить доступ к свойствам из, table1 вы можете сделать то же самое result.TABLE1.{property} и для table2.

Комментарии:

1. Спасибо! спасибо за ваше время и помощь.

2. Моя проблема имеет некоторое отношение к Entity Framework. Я прочитал с этого сайта entityframework.net/knowledge-base/18143051 / … и это помогает решить мою проблему, объединив эти 2 контекста таблицы в одном файле. Еще раз спасибо!