Mysql
 sql >> Base de données >  >> RDS >> Mysql

L'utilisation du cadre d'entité avec une base de données MySQL et le concepteur de modèle ne récupère pas les paramètres de procédure stockés

Au cas où vous trouveriez cela utile, voici l'approche que j'utilise pour travailler avec des procédures stockées avec des paramètres dans MySQL à partir du fournisseur MySQL Connector/.NET Entity Framework. J'appelle ExecuteStoreQuery(). Cela me libère d'avoir à faire face aux défis des procédures de cartographie avec des paramètres dans le modèle. Cela fonctionne pour nos besoins.

    public IList<SearchResultsMember> SearchMembers(int memberID, string countryCode, string regionCode, string cityCode, float distanceKm,
        int genderID, int ageMin, int ageMax, int offsetRowIndex, int maxRows)
    {


        MySqlParameter[] queryParams = new MySqlParameter[] { 
                                        new MySqlParameter("memberIDParam", memberID),
                                        new MySqlParameter("countryCodeParam", countryCode),
                                        new MySqlParameter("regionCodeParam", regionCode),
                                        new MySqlParameter("cityCodeParam", cityCode),
                                        new MySqlParameter("distanceKmParam", distanceKm),
                                        new MySqlParameter("genderIDParam", genderID),
                                        new MySqlParameter("ageMinParam", ageMin),
                                        new MySqlParameter("ageMaxParam", ageMax),
                                        new MySqlParameter("offsetRowIndexParam", offsetRowIndex),
                                        new MySqlParameter("maxRowsParam", maxRows)
                                    };

        StringBuilder sb = new StringBuilder();
        sb.Append("CALL search_members(@memberIDParam, @countryCodeParam, @regionCodeParam, @cityCodeParam, @distanceKmParam, @genderIDParam, @ageMinParam, @ageMaxParam, @offsetRowIndexParam, @maxRowsParam)");

        string commandText = sb.ToString();
        var results = _context.ExecuteStoreQuery<SearchResultsMember>(commandText, queryParams);

        return results.ToList();
    }