Beispiel #1
0
        /// <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;
                    }
                }
            }
        }
Beispiel #2
0
        /// <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());
            }
        }
Beispiel #3
0
        /// <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());
        }
Beispiel #4
0
        /// <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;
                    }
                }
            }
        }