// use ordinals to speed up access to DataReader // links: // crud definition: https://en.wikipedia.org/wiki/Create,_read,_update_and_delete // docLink: http://sql2x.org/documentationLink/327451c3-64a8-4de8-b359-76742d634497 // parameters: // reader: IDataReader from SQLClient public void Populate(IDataReader reader, GetFerryIndexWithFilterDataOrdinals ordinals) { if (!reader.IsDBNull(ordinals.FerryName)) { FerryName = reader.GetString(ordinals.FerryName); } if (!reader.IsDBNull(ordinals.FerryTypeRcd)) { FerryTypeRcd = reader.GetString(ordinals.FerryTypeRcd); } if (!reader.IsDBNull(ordinals.FerryTypeName)) { FerryTypeName = reader.GetString(ordinals.FerryTypeName); } if (!reader.IsDBNull(ordinals.ProductId)) { ProductId = reader.GetGuid(ordinals.ProductId); } if (!reader.IsDBNull(ordinals.ProductName)) { ProductName = reader.GetString(ordinals.ProductName); } if (!reader.IsDBNull(ordinals.FirstFloatDateTime)) { FirstFloatDateTime = reader.GetDateTime(ordinals.FirstFloatDateTime); } if (!reader.IsDBNull(ordinals.OperationalDateTime)) { OperationalDateTime = reader.GetDateTime(ordinals.OperationalDateTime); } if (!reader.IsDBNull(ordinals.EngineType)) { EngineType = reader.GetString(ordinals.EngineType); } if (!reader.IsDBNull(ordinals.PassengerCapacity)) { PassengerCapacity = reader.GetInt32(ordinals.PassengerCapacity); } if (!reader.IsDBNull(ordinals.UserId)) { UserId = reader.GetGuid(ordinals.UserId); } if (!reader.IsDBNull(ordinals.DefaultUserName)) { DefaultUserName = reader.GetString(ordinals.DefaultUserName); } if (!reader.IsDBNull(ordinals.DateTime)) { DateTime = reader.GetDateTime(ordinals.DateTime); } if (!reader.IsDBNull(ordinals.FerryId)) { FerryId = reader.GetGuid(ordinals.FerryId); } }
/// <summary>Get Ferry</summary> /// <cardinality>Many</cardinality> public List <GetFerryIndexWithFilterData> GetFerryIndexWithFilter() { var ret = new List <GetFerryIndexWithFilterData>(); string sql = @" SELECT f.ferry_name ,f.ferry_type_rcd ,ftr.ferry_type_name ,f.product_id ,p.product_name AS product_name ,f.first_float_date_time ,f.operational_date_time ,f.engine_type ,f.passenger_capacity ,f.user_id ,du.default_user_name ,f.date_time ,f.ferry_id FROM ferry AS f INNER JOIN ferry_type_ref AS ftr ON ftr.ferry_type_rcd = f.ferry_type_rcd LEFT JOIN product AS p ON p.product_id = f.product_id INNER JOIN default_user AS du ON du.default_user_id = f.user_id WHERE 1 = 1 "; using (var conn = new SqlConnection(Conn.ConnectionString)) { conn.Open(); using (var command = new SqlCommand(sql, conn)) { command.CommandText = sql; Logging log = Logging.PerformanceTimeStart("GetFerryIndexWithFilter"); IDataReader reader = command.ExecuteReader(CommandBehavior.SingleResult); log.PerformanceTimeStop(sql, command); var ordinals = new GetFerryIndexWithFilterDataOrdinals(reader); while (reader.Read()) { var data = new GetFerryIndexWithFilterData(); data.Populate(reader, ordinals); ret.Add(data); } reader.Close(); } return(ret); } }