public List <FAKategorie> GetFAKategorieByQueryData(FAKategorieQueryData queryData)
        {
            List <FAKategorie> wrkList = new List <FAKategorie>();

            // Durch das ständig anders aussehende SQL-Statement wird in diesem Fall von einem vorgefertigten
            // Prepared-Statement wie in den anderen Fällen abgesehen und das DbCommand jedesmal neu,
            // entsprechend den queryData erstellt.
            using (DbCommand cmd = myRepoFactory.CreateCommand()) {
                cmd.CommandText = "select * from FAKategorie k1 ";
                if (queryData != null)
                {
                    List <string> whereClauses = new List <string>();
                    if (!string.IsNullOrWhiteSpace(queryData.FAKennzeichenEA))
                    {
                        whereClauses.Add("FAKennzeichenEA = @FAKennzeichenEA");
                        cmd.AddCmdParameter(DbType.String, ParameterDirection.Input, "@FAKennzeichenEA",
                                            queryData.FAKennzeichenEA, size: 1, precision: null, scale: null);
                    }
                    if (queryData.GueltFuerJahr != null)
                    {
                        whereClauses.Add("FAJahrGueltigAb = (select top 1 FAJahrGueltigAb " +
                                         "                   from FAKategorie k2 " +
                                         "                   where FAJahrGueltigAb <= @FAJahrGueltigAb " +
                                         "                   order by FAJahrGueltigAb desc) ");
                        cmd.AddCmdParameter(DbType.Int32, ParameterDirection.Input, "@FAJahrGueltigAb",
                                            queryData.GueltFuerJahr, null, 4, 0);
                    }

                    string whereClause = string.Empty;
                    whereClauses.ForEach((w) => {
                        if (string.IsNullOrWhiteSpace(whereClause))
                        {
                            whereClause += " where " + w + " ";
                        }
                        else
                        {
                            whereClause += " and " + w + " ";
                        }
                    });
                    cmd.CommandText += whereClause;
                }
                cmd.Prepare();
                using (DbDataReader dbDr = cmd.ExecuteReader()) {
                    while (dbDr.Read())
                    {
                        FAKategorie faKat = new FAKategorie();
                        faKat.FillEntityWithDataReader(dbDr);
                        wrkList.Add(faKat);
                    }
                }
            }
            return(wrkList);
        }
        public FAKategorie FindFAKategorieById(int id)
        {
            FAKategorie myEntity = null;

            FillCommandParameter(FindFAKategorieByIdCmd, new object[] { id });
            using (DbDataReader dbDr = FindFAKategorieByIdCmd.ExecuteReader()) {
                if (dbDr.Read())
                {
                    myEntity = new FAKategorie();
                    myEntity.FillEntityWithDataReader(dbDr);
                }
            }
            return(myEntity);
        }
 public void Update(FAKategorie faKategorie)
 {
     FillCommandParameter(UpdateCmd, faKategorie);
     int x = UpdateCmd.ExecuteNonQuery();
 }
 public int Add(FAKategorie faKategorie)
 {
     FillCommandParameter(AddCmd, faKategorie);
     faKategorie.FAKategorieId = (int)AddCmd.ExecuteScalar();
     return(faKategorie.FAKategorieId);
 }