/// <summary> /// アルバム保存 /// 同じIDがあったら保存しないで更新 /// </summary> /// <param name="entity"></param> /// <returns></returns> public Keyword Store(Keyword entity) { // TODO: DBプログラミング講座で実装 var keyword = KeywordToTable(entity); using (var photoFrameEntity = new PhotoFrameTeamCEntities()) { // トランザクション作成 using (var transaction = photoFrameEntity.Database.BeginTransaction()) { try { var searchedKeyword = photoFrameEntity.m_Keyword.SingleOrDefault(p => p.Id == keyword.Id); if (searchedKeyword == null) { photoFrameEntity.m_Keyword.Add(keyword); } else { searchedKeyword.Name = keyword.Name; } photoFrameEntity.SaveChanges(); transaction.Commit(); return(entity); } catch (Exception) { transaction.Rollback(); throw; } } } }
/// <summary> /// DBのデータをすべて取得 /// </summary> /// <returns></returns> private IQueryable <Keyword> FindAll() { using (var photoFrameEntity = new PhotoFrameTeamCEntities()) { var keywords = from p in photoFrameEntity.m_Keyword.ToList() select TableToKeyword(p); return(keywords.AsQueryable()); } }
/// <summary> /// DBのデータをすべて取得 /// </summary> /// <returns></returns> private IQueryable <Photo> FindAll() { var m_photos = new List <m_Photo>(); // KeywordのFindAllでDBへアクセスするため、 一度DBのデータを格納して接続切る using (var photoFrameEntity = new PhotoFrameTeamCEntities()) { m_photos = photoFrameEntity.m_Photo.ToList(); } // DBのテーブルデータからPhotoオブジェクトへ変換メソッドTableToPhotoの呼び出し // ここでKeywordのFindAllでDBへアクセスがある var photos = m_photos.Select(p => TableToPhoto(p)); return(photos.AsQueryable()); }
/// <summary> /// /// </summary> /// <param name="entity"></param> /// <returns></returns> public Photo Store(Photo entity) { // TODO: DBプログラミング講座で実装 var photo = PhotoToTable(entity); using (var photoFrameEntity = new PhotoFrameTeamCEntities()) { // トランザクション作成 using (var transaction = photoFrameEntity.Database.BeginTransaction()) { try { var searchedPhoto = photoFrameEntity.m_Photo.SingleOrDefault(p => p.Id == photo.Id); if (searchedPhoto == null) { photoFrameEntity.m_Photo.Add(photo); } else { searchedPhoto.FilePath = photo.FilePath; searchedPhoto.DateTime = photo.DateTime; searchedPhoto.IsFavorite = photo.IsFavorite; searchedPhoto.KeywordId = photo.KeywordId; } photoFrameEntity.SaveChanges(); transaction.Commit(); return(entity); } catch (Exception) { transaction.Rollback(); throw; } } } }