Часть меня удивляется, если вы могли бы предоставить свою собственную функцию санитарии так же просто, как это:
$value = preg_replace('/[^a-zA-Z_]*/', '', $value);
Я действительно не продумал это, но кажется, что удаление чего-либо, кроме символов и подчеркиваний может работать.
Хорошо, это добилось цели. Спасибо.
Вот мой заключительный код...
Сервер:
public List<Score> GetHighScores(string gameId, int count)
{
Guid guid = new Guid(gameId);
using (PPGEntities entities = new PPGEntities())
{
var query = from s in entities.Scores
where s.Game.Id == guid
orderby s.PlayerScore descending
select s;
return query.ToList<Score>();
}
}
Клиент:
void hsc_LoadHighScoreCompleted(object sender, GetHighScoreCompletedEventArgs e)
{
ObservableCollection<Score> list = e.Result;
_listBox.ItemsSource = list.Select((player, index) => new ScoreWithRank()
{
PlayerName = player.PlayerName,
PlayerScore = player.PlayerScore,
Rank = index+=1
}).ToList();
}
Ну, самый легкий путь состоял бы в том, чтобы сделать это в стороне клиента, а не стороне базы данных, и использовать перегрузку Выбора, который обеспечивает индекс также:
public List<ScoreWithRank> GetHighScoresWithRank(string gameId, int count)
{
Guid guid = new Guid(gameId);
using (PPGEntities entities = new PPGEntities())
{
var query = from s in entities.Scores
where s.Game.Id == guid
orderby s.PlayerScore descending
select new
{
PlayerName = s.PlayerName,
PlayerScore = s.PlayerScore
};
return query.AsEnumerable() // Client-side from here on
.Select((player, index) => new ScoreWithRank()
{
PlayerName = player.PlayerName,
PlayerScore = player.PlayerScore,
Rank = index + 1;
})
.ToList();
}
}