1

Я объект, называемый 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?

ответ

1

изменить код для

public class Service 
{ 
[Key] 
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] 
public int serviceId { get; set; } 
public int ServiceCategoryId {get; set;} // Added 
public string name { get; set; } 
public string description { get; set; } 

public ServiceCategory ServiceCategory { get; set; } 
} 

и заполнить ServiceCategoryId.

+0

Таким образом, он автоматически отобразит ServiceCategoryId в ServiceCategory? – hjavaher

+0

@hjavaher EF загрузит связанные службы ServiceCategories из serviceid, ServiceCategoryId позволит вам получить доступ к базовому ключу в дочерней таблице. Существует также возможность кэширования с сохранением результатов в памяти для более быстрого доступа без необходимости совершать поездку в базу данных – Justin

+0

нормально, я думаю, что у нас небольшая недопонимания. Класс выше - моя модель. Я использую viewModel, который отправляет обратно мою выбранную servicecategoryid. когда я добавляю новую службу в db, обычно я иду в db, нахожу уважаемую категорию, загружаю ее в память и назначаю ее в службу. Я спрашиваю, так как у меня уже есть id, а в db единственное, что сохраняется, это id как FK, могу ли я сохранить db roundtrip для загрузки категории? – hjavaher

 Смежные вопросы

  • Нет связанных вопросов^_^