У меня есть точный вопрос, но я нашел решение. Я предупреждаю вас, хотя, это действительно плохо. В моей ситуации у меня есть 3 таблицы:
Видео
- VideoId, int, PK
- бла
Комментарий
- CommentId, int, PK
- UserId, int (пользователь, оставивший комментарий)
- CommentText, строка
VideoComments
- VideoId, int, PK
- CommentId, int, PK
Прежде всего, для структуры сущностей для правильной настройки отношений оба столбца в таблице ассоциаций (VideoComments в моем случае) должны быть первичным ключом.
Тем не менее, вот как я добавляю новый комментарий.
public VideoDTO AddCommentToVideo(VideoDTO pVideo, CommentDTO pComment)
{
Video video = context.Videos.Where(v => v.VideoId ==
pVideo.VideoId).FirstOrDefault();
User user = context.Users.Where(u => u.UserId ==
pComment.User.UserId).FirstOrDefault();
Comment comment = new Comment();
comment.CommentText = pComment.CommentText;
comment.User = user;
comment.Videos.Add(video);
context.AddToComments(comment);
context.SaveChanges();
return pVideo;
}
Это очень плохо ... как плохо пересекать потоки. Я делаю 2 запроса, чтобы получить полные объекты, обязательные для Entity Framework, чтобы я мог создать новый комментарий. Я хотел бы лучший способ сделать это, но я не знаю один. Может быть, это может помочь.