Как объединить таблицы, используя linq и Entity Framework - PullRequest
0 голосов
/ 22 апреля 2020

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

public List<CK_Model> GetDetails()
    {
        try
        {
            using (var entities = new MobileStore2020Entities())
            {
                var details = from a in entities.CK_Model
                              join b in entities.CK_Brand
                              on a.BrandID equals b.BrandID
                              join c in entities.CK_Stock
                              on a.ModelID equals c.ModelID
                              select new 

                              {
                                  ModelID = a.ModelID,
                                  ModelName = a.ModelName
                              };
                return details.ToList();

Спасибо.

1 Ответ

0 голосов
/ 25 апреля 2020

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

public class DetailsItemType
{
     public CK_Model Model{ get; set; }
     public CK_Brand Brand { get; set; }
     public CK_Stock Stock { get; set; }
}

Затем измените тип возврата вашего метода на DetailsItemType, и у вас будет что-то вроде следующего

public List<DetailsItemType> GetDetails()
{
    using (var entities = new MobileStore2020Entities())
    {
        var details = from a in entities.CK_Model
                      join b in entities.CK_Brand
                      on a.BrandID equals b.BrandID
                      join c in entities.CK_Stock
                      on a.ModelID equals c.ModelID
                      select new DetailsItemType
                      {
                          Model= a,
                          Brand = b,
                          Stock = c
                      };
        return details.ToList();
    }
}

Теперь каждый раз, когда вы вызов GetDetails () вы можете получить доступ ко всем 3 таблицам. Например

var details = GetDetails();
var model = details.Model;
var brand = details.Brand;
var stock = details.Brand;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...