Структура сущности: как назначить внешний ключ в сущности

81
6

Вот моя структура таблиц..


Профиль: ProfileID (PK), ProfileName varchar (50), GenderID (Fk)


Пол: GenderID (PK), GenderName varchar (50)


Таблица пола имеет 2 возможных значения: Мужской, Женский.


В структуре сущности, когда я обновляю профиль с помощью GenderID, я использую следующий код:


        profile.GenderID = Repository.
GetGender(
Request.Form["Profile.GenderName"].ToString()
).GenderID;

Repository.Save();


Метод GetGender выглядит следующим образом:


public Gender GetGender(string genderName)
{
return (from gender in db.Genders
where (gender.GenderName.Equals(genderName))
select gender).First();

}


Есть ли лучший способ сделать это? Я чувствую, что я не использую Entity Framework, как это должно быть...


Если я присвою значение profile.Gender.GenderID в отличие от profile.GenderID, то я обновляю исходную таблицу гендерного поиска, которая не является тем, что я хочу.


Я запутался..


Спасибо..

спросил(а) 2010-06-29T16:40:00+04:00 10 лет, 3 месяца назад
1
Решение
59

Если вам нужно искать пол, это текстовое описание, то лучшее, что вы собираетесь сделать (хотя я, вероятно, добавлю StringComparison.OrdinalIgnoreCase к Equals). Если у вас есть ПК, есть и другие варианты.

ответил(а) 2010-06-29T16:44:00+04:00 10 лет, 3 месяца назад
58

Кажется, что много усилий, чтобы продолжать звонить в базу данных для этой информации. Не могли бы вы получить пары значений один раз, например, в Application_Start, поместить его в Cache, а затем ссылаться на него по мере необходимости? В конце концов, значения вряд ли будут меняться очень часто.

ответил(а) 2010-06-29T16:51:00+04:00 10 лет, 3 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема