Както бе споменато в този въпрос, „LINQ към SQL позволява съпоставянията на таблици да преобразуват автоматично напред и назад към Enum, като посочите типа за колоната - това работи за низове или цели числа." Имам обаче проблеми с това, когато използвам съхранени процедури (вместо автоматично генериран SQL) за създаване и актуализиране на обекти.
В моята база данни имам таблица Users с колона Role от тип int. Имам и съхранена процедура CreateUser, която приема параметър @role от тип int. Искам потребителските роли да бъдат представени от enum Роля в моя C# код. Мога да променя типа на свойството Role на автоматично генерирания потребителски клас от int на Role, но след това проектът отказва да се компилира, тъй като типът на свойството Role не съвпада с типа на параметъра на функцията за данни (съответстващ на @ ролеви параметър в моята съхранена процедура). Типовете параметри на функцията за данни се генерират автоматично от LINQ към SQL и не мога да намеря начин да ги променя.
Обмислям да оставя свойството Role като int, да го преименувам на нещо като RoleValue, да го направя частно и да добавя друго публично свойство от тип Role, което изпълнява преобразуването int-enum. Но изглежда, че трябва да има по-добър начин.