Entity Framework - база данных dbcontext sqlquery объединяет несколько таблиц в SQLite - PullRequest
0 голосов
/ 15 декабря 2011

Я не могу выполнить SQL QUERY (запрос строки) СООБЩЕНИЕ ОБ ОШИБКЕ: Считыватель данных имеет более одного поля. Несколько полей недопустимы для примитивных типов EDM. КАК ЭТО ИСПРАВЛЯЕТ ????

Department class code here:
public class Department   
{
    [Key]
    public Int64 DepartmentID { get; set; }
    public string DepartmentName { get; set; }
    public Int64 P_ID { get; set; }
}   
Person class code here:
public class PersonInfo    
{       
    [Key]
    public Int64 P_ID { get; set; }
    public string PersonName { get; set; }
    public string Register_Num { get; set; }
}

using (var db = new EntityContext())
        {
            try
            {
                int result = 0;
                string query = @"
                     SELECT P.P_ID, D.DepartmentName FROM PersonInfo AS P
                     INNER JOIN Department AS D ON P.P_ID = D.P_ID";

                var exists = db.Database
                .SqlQuery<Department>(query).ToList();

                foreach (var item in exists)
                {
                    MessageBox.Show(string.Format("{0}", item));
                }                    
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.InnerException.InnerException.Message);
            }
        } 

1 Ответ

1 голос
/ 06 января 2012

Поскольку вы пытаетесь сопоставить набор результатов с классом Model Department, вам также необходимо возвращать Departmentid вместе с SQL-запросом. Обратите внимание, что все имена столбцов должны точно соответствовать свойствам вашего класса отдела.

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