实体框架 - dbcontext数据库sqlquery在SQLite中连接多个表

时间:2011-12-15 09:25:31

标签: c# entity-framework sqlite

我无法执行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 个答案:

答案 0 :(得分:1)

当您尝试将结果集映射到Department Model类时,因此您需要使用sql查询返回departmentid。请注意,所有列名称都应与您的部门类别的属性完全匹配。