【问题标题】:Insert Data into mulitple table using FK's using Entity framework使用 FK 使用实体框架将数据插入到多个表中
【发布时间】:2010-10-24 04:34:10
【问题描述】:
Movie - ID, Name, Description, DirectorID-Fk, MusicID-Fk
Director - ID, Name 
Music - ID, MusicName 

现在我正在尝试在电影中插入一条新记录,但我不知道 Director 是否已经存在于数据库中并且与音乐相同)。

从 UI 我接受all movie information, DirectorName and MusicName

现在,当我保存信息时,我必须先检查是否使用directornamemusicname,然后如何根据上下文执行SaveChanges()

让我知道这是如何工作的。

【问题讨论】:

    标签: .net entity-framework linq-to-entities self-tracking-entities


    【解决方案1】:

    如果您只有DirectorNameMusicName,则必须查询数据库以获取现有条目(或找出它们尚不存在于数据库中)。如果确实存在,请将它们添加到您的电影实体中;如果没有,创建新的并添加:

    var directorToAdd = context.Directors.FirstOfDefault(d => d.Name == DirectorName) ??
                        new Director { Name = DirectorName };
    
    var musicToAdd = context.MusicSet.FirstOrDefault(m => m.Name == MusicName) ??
                     new Music { Name = MusicName };
    
    movie.Director = directorToAdd;
    movie.Music = musicToAdd;
    
    context.AddToMovies(movie);
    context.SaveChanges();
    

    【讨论】:

      猜你喜欢
      • 2014-06-12
      • 1970-01-01
      • 2016-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-24
      • 2012-02-08
      相关资源
      最近更新 更多