Как создать отображение отношений через Entity Framework - PullRequest
0 голосов
/ 17 апреля 2009

У меня есть следующая модель домена:

User
{
int Id;
}

City
{
int Id;
}

UserCity
{
int UserId,
int CityId,
dateTime StartDate
}

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

UserCity uc = new UserCity();

//This is a db hit
uc.User = MyEntityFrameworkDBContext.User.FirstOrDefault(u => u.ID == currentUserId);

//this is a db hit
uc.City = MyEntityFrameworkDBContext.City.FirstOrDefault(c => c.ID == currentCityId);
uc.StartDate = userCityStartDate;

//this is a db hit
MyEntityFrameworkDBContext.SaveChanges();

Можно ли как-нибудь создать отношения с помощью всего одного попадания в БД? На самом деле первые два попадания в дб не требуются.

Ответы [ 2 ]

0 голосов
/ 17 апреля 2009
uc.UserReference.EntityKey =
    new EntityKey("MyEntities.Users", "Id", currentUserId);

... и аналогично для Сити. Очевидно, замените аргументы конструктора EntityKey правильными значениями для вашей модели сущности. Обратите внимание, что вы не сможете ссылаться на свойства City или User после установки EntityKey. Но так как вы никогда не делаете этого в коде шоу, это не будет проблемой для вас.

Кроме того, в показанном вами коде вы никогда не добавляете новую сущность в контекст. Я предполагаю, что это просто упущение в вопросе. Вы должны сделать это, прежде чем установить пользователя и город.

0 голосов
/ 17 апреля 2009

Нет, поскольку EF v1.0 не поддерживает поля внешнего ключа. Они добавят это в версии 2.0 (.NET 4.0).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...