Я объект, называемый Service
как следующее:ASP.Net MVC с Entity Framework Code First Navigation собственности
public class Service
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int serviceId { get; set; }
public string name { get; set; }
public string description { get; set; }
public ServiceCategory category { get; set; }
}
Категория выбирается пользователем с помощью выпадающего, который содержит идентификатор и имя из категории, доступные в db. ViewModel затем вернет мне этот id для сохранения. То, как я это делал до сих пор, - это переходить в мой репозиторий, получая объект категории, где идентификатор соответствует выбранной категории в представлении и затем назначает его. Это, конечно, совершает кругосветное путешествие в дБ.
Мне было интересно, так как у меня уже есть идентификатор, есть ли лучший способ сделать это, когда я не пойду в db?
Таким образом, он автоматически отобразит ServiceCategoryId в ServiceCategory? – hjavaher
@hjavaher EF загрузит связанные службы ServiceCategories из serviceid, ServiceCategoryId позволит вам получить доступ к базовому ключу в дочерней таблице. Существует также возможность кэширования с сохранением результатов в памяти для более быстрого доступа без необходимости совершать поездку в базу данных – Justin
нормально, я думаю, что у нас небольшая недопонимания. Класс выше - моя модель. Я использую viewModel, который отправляет обратно мою выбранную servicecategoryid. когда я добавляю новую службу в db, обычно я иду в db, нахожу уважаемую категорию, загружаю ее в память и назначаю ее в службу. Я спрашиваю, так как у меня уже есть id, а в db единственное, что сохраняется, это id как FK, могу ли я сохранить db roundtrip для загрузки категории? – hjavaher