使用实体框架填充datareader错误,在存储过程中填充多个记录集

时间:2014-05-11 10:22:21

标签: asp.net-mvc-4 entity-framework-5

我正在从存储过程中填充多个结果集。我在实体框架5.0中使用数据库第一种方法。我只选择存储过程中的某些必需列。我得到他的错误:数据读取器与指定的'TestDbModel.Emp'不兼容。类型为“Eid”的成员在数据读取器中没有相应的列具有相同的名称。

存储过程

  

createprocedure [dbo]。[selectdata]从emp select中选择EmpName   StudName,StudId来自学生

我的MVC代码获取数据

using(var db = new TestDbEntities() )
            {
                db.Database.Initialize(force: false);
                var cmd = db.Database.Connection.CreateCommand();
                cmd.CommandText = "dbo.selectdata";
                try
                {
                    db.Database.Connection.Open();
                    var reader = cmd.ExecuteReader();
                    var emp = ((IObjectContextAdapter)db).
                               ObjectContext
                               .Translate<Emp>(reader, "Emps", MergeOption.AppendOnly);
                    foreach (var item in emp)
                    {
                        string ename = item.EmpName;
                    }

                    reader.NextResult();
                    var students = ((IObjectContextAdapter)db)
                                    .ObjectContext
                                    .Translate<Student>(reader, "Students", MergeOption.AppendOnly);

                    foreach (var item in students)
                    {
                        string studentname = item.StudName;
                    }
                }

我可以在阅读器中填充数据。

0 个答案:

没有答案