protected override IEnumerable <Movie> GetAllCore() { //Using a data set var ds = new DataSet(); //Create connection using (var conn = CreateConnection()) { var da = new SqlDataAdapter(); var cmd = new SqlCommand("GetAllMovies", conn); cmd.CommandType = CommandType.StoredProcedure; //Use data adapter to fill dataset da.SelectCommand = cmd; da.Fill(ds); }; //Must have at least one table //if (!ds.Tables.OfType<DataTable>().Any()) // return Enumerable.Empty<Movie>(); var table = ds.Tables.OfType <DataTable>().FirstOrDefault(); if (table == null) { return(Enumerable.Empty <Movie>()); } //Enumerate the rows var movies = new List <Movie>(); foreach (var row in table.Rows.OfType <DataRow>()) { //Use ordinal or column names var movie = new SqlMovie() { Id = Convert.ToInt32(row["Id"]), Name = row.Field <string>("Title"), Description = Convert.ToString(row[2]), ReleaseYear = 1900, RunLength = row.Field <int>(3), IsOwned = Convert.ToBoolean(row[4]), }; movies.Add(movie); } ; return(movies); }
protected override IEnumerable <Movie> GetAllCore() { //uses a data set var ds = new DataSet(); using (var conn = CreateConnection()) { var da = new SqlDataAdapter(); var cmd = new SqlCommand("GetAllMovies", conn); cmd.CommandType = CommandType.StoredProcedure; da.SelectCommand = cmd; da.Fill(ds); }; //Read the Data //if (ds.Tables.OfType<DataTable>().Any()) // return Enumerable.Empty<Movie>(); var table = ds.Tables.OfType <DataTable>().FirstOrDefault(); if (table == null) { return(Enumerable.Empty <Movie>()); } var movies = new List <Movie>(); foreach (var row in table.Rows.OfType <DataRow>()) { var movie = new SqlMovie() { Id = Convert.ToInt32(row["Id"]), Name = row.Field <string>("Title"), Description = Convert.ToString(row[2]), ReleaseYear = 1900, RunLength = row.Field <int>(3), IsOwned = Convert.ToBoolean(row[4]), }; movies.Add(movie); } ; //throw new NotImplementedException(); return(movies); }