Как привести объект DTO к типу Generi c T - PullRequest
0 голосов
/ 14 января 2020

У меня есть этот код, где я возвращаю список объектов. но тип возврата не позволяет вернуться. Это мой класс интерфейса

interface SEC_Interface<T>
    {
        bool Add(T data);
        bool Update(T data);

        bool Delete(T data);

        List<T> GetAll();

        T GetById(int id);

        List<T> Search(string SearchTerm);
    }

Вот метод класса. Мой класс также является родовым c классом типа и реализует этот интерфейс, который также является универсальным c.

public List<T> GetAll()
        {
            try
            {
                using (SqlConnection conn = new SqlConnection(CS))
                {
                    DataSet ds = SqlHelper.ExecuteDataset(conn, "SEC_GetAllUsers", null);

                    List<DTO_GetAll> result = ds.Tables[0].AsEnumerable()
                        .Select(dataRow => new DTO_GetAll
                        {
                          id = dataRow.Field<int>("id"),
                          FirstName = dataRow.Field<String>("FirstName"),
                            LastName = dataRow.Field<String>("LastName"),
                            Email = dataRow.Field<String>("Email"),
                            Address = dataRow.Field<String>("Address"),
                            Password = dataRow.Field<String>("Password"),
                            UserName = dataRow.Field<String>("UserName"),
                            Role_Id = dataRow.Field<int>("Role_Id"),
                            Status_Id = dataRow.Field<int>("Status_Id")
          }).ToList();

        return result;
      }
   }

1 Ответ

1 голос
/ 14 января 2020

Ваш реализующий класс может просто объявить тип возвращаемого значения как List<DTO_GetAll>:

class SEC_DTO_GetAll : SEC_Interface<DTO_GetAll>
{
    public List<DTO_GetAll> GetAll()
    {

    }
}

Вы заявляете, что T будет DTO_GetAll при реализации интерфейса.

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