Я написал этот код для проекции отношения один ко многим, но он не работает:
using (var connection = new SqlConnection(connectionString))
{
   connection.Open();
   IEnumerable<Store> stores = connection.Query<Store, IEnumerable<Employee>, Store>
                        (@"Select Stores.Id as StoreId, Stores.Name, 
                                  Employees.Id as EmployeeId, Employees.FirstName,
                                  Employees.LastName, Employees.StoreId 
                           from Store Stores 
                           INNER JOIN Employee Employees ON Stores.Id = Employees.StoreId",
                        (a, s) => { a.Employees = s; return a; }, 
                        splitOn: "EmployeeId");
   foreach (var store in stores)
   {
       Console.WriteLine(store.Name);
   }
}
Кто-нибудь может заметить ошибку?
EDIT:
Это мои сущности:
public class Product
{
    public int Id { get; set; }
    public string Name { get; set; }
    public double Price { get; set; }
    public IList<Store> Stores { get; set; }
    public Product()
    {
        Stores = new List<Store>();
    }
}
public class Store
{
    public int Id { get; set; }
    public string Name { get; set; }
    public IEnumerable<Product> Products { get; set; }
    public IEnumerable<Employee> Employees { get; set; }
    public Store()
    {
        Products = new List<Product>();
        Employees = new List<Employee>();
    }
}
EDIT:
Я изменил запрос на:
IEnumerable<Store> stores = connection.Query<Store, List<Employee>, Store>
        (@"Select Stores.Id as StoreId ,Stores.Name,Employees.Id as EmployeeId,
           Employees.FirstName,Employees.LastName,Employees.StoreId 
           from Store Stores INNER JOIN Employee Employees 
           ON Stores.Id = Employees.StoreId",
         (a, s) => { a.Employees = s; return a; }, splitOn: "EmployeeId");
и я избавляюсь от исключений! Тем не менее, сотрудники не отображаются на всех. Я все еще не уверен, какая проблема возникла с IEnumerable<Employee> в первом запросе.






