Есть две таблицы
public partial class Tax
{
public int id { get; set; }
public string name { get; set; }
public int category { get; set; }
public string property { get; set; }
public decimal price { get; set; }
public virtual Category Category1 { get; set; }
}
public partial class Category
{
public int id { get; set; }
public string title { get; set; }
public virtual ICollection<Tax> Tax { get; set; }
}
Есть метод который должен вывести таблицу Tax join Category, то есть заместо id.Category должен быть title.Category. Запрос выглядит таким образом.
public IEnumerable<Tax> GetAllTax()
{
var res = from p in dbentities.Tax
join c in dbentities.Category on p.category equals c.id
select new { p.name, c.title, p.property, p.price };
return res.ToList();
}
Но студия ругается на анонимные типы, как лучше преобразовать метод?
Ошибка CS0266 Не удается неявно преобразовать тип "System.Collections.Generic.List<>" в "System.Collections.Generic.IEnumerable".
Нельзя возвращать анонимный тип.
var res = from p in dbentities.Tax
join c in dbentities.Category on p.category equals c.id
select new { p.name, c.title, p.property, p.price }; // ошибка
Надо определить какой-то новый модель создать 'Result/Query object'.
class TaxQueryModel
{
public string Name { get; set; }
public string Title { get; set; }
public string Property { get; set; }
public decimal Price { get; set; }
}
public IEnumerable<TaxQueryModel> GetAllTax()
{
var res = from p in dbentities.Tax
join c in dbentities.Category on p.category equals c.id
select new TaxQueryModel
{
Name = p.name, Title = c.title, Property = p.property,
Price = p.price
};
return res;
}
можно и так но в дальнейшем это проблема (и в Entity Framework тоже).
public partial class Tax
{
public int id { get; set; }
public string name { get; set; }
public int category { get; set; }
public string property { get; set; }
public decimal price { get; set; }
public string title { get; set; } // добавил
public virtual Category Category1 { get; set; }
}
public IEnumerable<Tax> GetAllTax()
{
var res = from p in dbentities.Tax
join c in dbentities.Category on p.category equals c.id
select new Tax
{
name = p.name, title = c.title, property = p.property,
price = p.price
};
return res;
}
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости