I'm trying to use the Multimapping feature of dapper to return a list of MenuCategories and associated Menus.But I am getting below error:-
when using the multi-mapping APIs ensure you set the splitOn param if you have keys other than Id
Here are my classes:-
VMMenuCategory.cs
public class VMMenuCategory
{
public int MenuCategoryID { get; set; }
public string CategoryName { get; set; }
public System.DateTime CreatedOn { get; set; }
public DateTime? UpdatedOn { get; set; }
public List<VMMenu> Menus { get; set; }
}
VMMenus.cs
public class VMMenu
{
public int MenuID { get; set; }
public int MenuCategoryID { get; set; }
public string ProductName { get; set; }
public int? CostPrice { get; set; }
public int? SellingPrice { get; set; }
public System.DateTime CreatedOn { get; set; }
public DateTime? UpdatedOn { get; set; }
}
MenuCategoriesRepository.cs
public sealed class MenuCategoryRepository : Connection, IMenuCategoryRepository
{
List<VMMenuCategory> IMenuCategoryRepository.GetAllMenuCategories()
{
List<VMMenuCategory> _lstVMMenuCategory = new List<VMMenuCategory>();
string query = "select * from [dbo].[MenuCategories]";
using (var connection = GetConnection())
{
var data = connection.Query<VMMenuCategory, VMMenu, VMMenuCategory>(query, map:(mc,m) => { mc.Menus =new List<VMMenu>() ;return mc; },splitOn: "MenuID").ToList();
return data;
}
//return _lstVMMenuCategory;
}
}
[dbo].[MenuCategories]table does not haveMenuIDcolumn. - Dmitry EgorovsplitOn: "MenuCategoryID"but I got the same error. - Tejinder SinghVMMenu's data unless you tell it in the query. - Dmitry Egorov