Reputation: 493
In my MVC
application have 4 model classes.
ProductModel.cs
public class ProductModel
{
public int ProductID { get; set; }
public string ProductName { get; set; }
public int SupplierID { get; set; }
public int CategoryID { get; set; }
}
CategoriesModel.cs
public class CategoriesModel
{
public int CategoryID { get; set; }
public string CategoryName { get; set; }
public string Description { get; set; }
}
SuppliersModel.cs
public class SuppliersModel
{
public int SupplierID { get; set; }
public string CompanyName { get; set; }
public string ContactName { get; set; }
public string ContactTitle { get; set; }
public string Phone { get; set; }
public string City { get; set; }
public string Country { get; set; }
}
Products_Categories_SuppliersModel - Class with all the required properties from above three classes.
public class Products_Categories_SuppliersModel
{
public string ProductName { get; set; }
public string ContactName { get; set; }
public string ContactTitle { get; set; }
public string CompanyName { get; set; }
public string Phone { get; set; }
public string City { get; set; }
public string Country { get; set; }
public string CategoryName { get; set; }
public string Description { get; set; }
}
I have data in List<ProductModel>
, List<CategoriesModel>
, List<SuppliersModel>
. Used Linq
to join all three Lists.
public List<Products_Categories_SuppliersModel> GetProduct_Category_SupplierData()
{
try
{
List<ProductModel> prodData = GetProductsData().ToList();
List<CategoriesModel> categData = GetCategoriesData().ToList();
List<SuppliersModel> supplData = GetSuppliersData();
var DBData = (from p in prodData
join c in categData
on p.CategoryID equals c.CategoryID
join s in supplData on p.SupplierID equals s.SupplierID
select new
{
p.ProductName,
c.CategoryName,
c.Description,
s.ContactName,
s.ContactTitle,
s.CompanyName,
s.Phone,
s.City,
s.Country
});
return DBData.ToList();
}
catch (Exception) { return null; }
finally {}
}
But Line # 24 throws error:
Cannot implicitly convert type
'System.Collections.Generic.List<AnonymousType#1>' to
'System.Collections.Generic.List<MVCApp.Models.Products_Categories_SuppliersModel>'.
What's the mistake in above code? I have created Products_Categories_SuppliersModel
class such that return data should be of Products_Categories_SuppliersModel
type.
Upvotes: 1
Views: 78
Reputation: 2208
Write your select statement like this
select new MVCApp.Models.Products_Categories_SuppliersModel
{
ProductName = p.ProductName,
CategoryName = c.CategoryName,
Description = c.Description,
ContactName = s.ContactName,
ContactTitle = s.ContactTitle,
CompanyName = s.CompanyName,
Phone = s.Phone,
City = s.City,
Country = s.Country };
Upvotes: 4
Reputation: 5825
Just instantiate Products_Categories_SuppliersModel
in your select.
var DBData = (from p in prodData
join c in categData
on p.CategoryID equals c.CategoryID
join s in supplData on p.SupplierID equals s.SupplierID
select new Products_Categories_SuppliersModel()
{
p.ProductName,
c.CategoryName,
c.Description,
s.ContactName,
s.ContactTitle,
s.CompanyName,
s.Phone,
s.City,
s.Country
});
Upvotes: 2