У меня возникла проблема при использовании SubSonic 3 (.0.0.3) ActiveRecord с MySQL.
Поскольку MySQL не позволяет вам использовать прописные буквы в именах таблиц или столбцов (или, скорее, игнорирует это, если вы это делаете), я решил разделять слова с помощью подчеркивания, например entity_id, а затем используйте метод CleanUp () для добавления корпуса заголовка и удаления подчеркивания.
Друг написал метод ToTitleCase (string s), который выглядит следующим образом:
string ToTitleCase(string s)
{
CultureInfo cultureInfo = Thread.CurrentThread.CurrentCulture;
TextInfo textInfo = cultureInfo.TextInfo;
return textInfo.ToTitleCase(s);
}
А метод CleanUp () выглядит так:
string CleanUp(string tableName){
string result=tableName;
//strip blanks
result=result.Replace(" ","");
//put your logic here...
result = ToTitleCase(result);
result = result.Replace("_", "");
return result;
}
Если я тогда сделаю:
var entity = Entity.All().Where(e => e.EntityName.Contains("John"));
Я получаю NotSupportedException с сообщением «Элемент EntityName не поддерживается».
Если я удалю
result = result.Replace("_", "");
Все работает нормально, только я получаю свойства, похожие на Entity_Id, что не совсем то, что мне нужно.
Если кто-нибудь знает, почему это произошло, я хотел бы это услышать. Если можно исправить, то даже лучше! Это не шоу-стоп, но немного раздражает.
HomeScrolls
(HomeScrollID
mediumint (9) NOT NULL auto_increment,HomeScrollImage
varchar (255) NOT NULL,HomeScrollShow
tinyint (1) NOT NULL, PRIMARY KEY (HomeScrollID
), KEYHomeScrollShow
(HomeScrollShow
)) ENGINE = MyISAM DEFAULT CHARSET = latin1 AUTO_INCREMENT = 5; Прописные буквы работают нормально !!!!!!!! - person davethecoder   schedule 24.02.2010