Не удалось неявно преобразовать тип 'System.Collections.Generi c .List в asp. net MVC - PullRequest
0 голосов
/ 04 апреля 2020

Невозможно неявно преобразовать тип 'System.Collections.Generi c .List>' в 'System.Collections.Generi c .List

public List<Floor> GetBuildingInfoByBuildId(int floor_Id)
        {
            var result = (from floor in db.Floors
                       join camp in db.Campuses on floor.CampusID equals camp.ID
                       join build in db.Buildings on floor.BuildingID equals build.ID
                       where (floor.ID == floor_Id)
                       select new
                       {
                           Floor = floor.ID,
                           Campus = camp.ID,
                           Building = build.ID,
                              floor.ID,
                              floor.Floor_Name,
                              camp.Campus_Name,
                              build.Building_Name

                          }).ToList();

            return result;

        }

Ответы [ 2 ]

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

Вы можете представить свой набор результатов как класс ...

public class BuildingInfo
{
    public int Floor { get; set; }
    public int Campus { get; set; }
    public int Building { get; set; }
    public int FloorId { get; set; }
    public string FloorName { get; set; }
    public string CampusName { get; set; }
    public string BuildingName { get; set; }
}

... и затем изменить свой метод GetBuildingInfoByBuildId(), чтобы он возвращал список этого типа ...

public static List<BuildingInfo> GetBuildingInfoByBuildId(int floor_Id)
{
    var result = (from floor in db.Floors
                    join camp in db.Campuses on floor.CampusID equals camp.ID
                    join build in db.Buildings on floor.BuildingID equals build.ID
                    where (floor.ID == floor_Id)
                    select new BuildingInfo
                    {
                        Floor = floor.ID,
                        Campus = camp.ID,
                        Building = build.ID,
                        FloorId = floor.ID,
                        FloorName = floor.Floor_Name,
                        CampusName = camp.Campus_Name,
                        BuildingName = build.Building_Name

                    }).ToList();

    return result;
}
0 голосов
/ 04 апреля 2020
public object GetBuildingInfoByBuildId(int floor_Id)
        {
            var result = (from floor in db.Floors
                       join camp in db.Campuses on floor.CampusID equals camp.ID
                       join build in db.Buildings on floor.BuildingID equals build.ID
                       where (floor.ID == floor_Id)
                       select new
                       {
                           Floor = floor.ID,
                           Campus = camp.ID,
                           Building = build.ID,
                              floor.ID,
                              floor.Floor_Name,
                              camp.Campus_Name,
                              build.Building_Name

                          }).ToList();

            return result;

        }

или вам следует создать новый класс, подобный этому

class BuildingInfo
{
public int FloorId {Set ;get;}
public CampusId  {Set; get;}
public BuildingId {Set ;get; }
public sting FloorName {Set; get;}
public sting Campus_Name {Set; get;}
public sting Building_Name {Set ;get;}

}

, и вернуть новый тип, и я вижу, что лучше вот так

select new BuildingInfo()
                       {
                           Floor = floor.ID,
                           Campus = camp.ID,
                           Building = build.ID,
                              floor.ID,
                              floor.Floor_Name,
                              camp.Campus_Name,
                              build.Building_Name

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