我使用EF6和存储过程,根据某些条件返回2表。 为了转换为类,我们创建了扩展方法
public static IEnumerable<T> Translate<T>(this DataBase database, DbDataReader reader)
{
var result = ((IObjectContextAdapter) database).ObjectContext
.Translate<T>(reader).ToList();
reader.NextResult();
return result;
}
但是在那种情况下,如果类不是表格,那么EF也不会抛出异常 我们不会抛出异常,他创建了具有空值的类。
调用代码ex
using (var db = new DataBase())
{
db.Database.Initialize(true);
var cmd = db.Database.Connection.CreateCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "GetStudent";
db.Database.Connection.Open();
var reader = cmd.ExecuteReader();
var studentList = db.Translate<Student>(reader);
}