0

インデックスは次のとおりです。フォルダを通過し、データベースにエントリを追加する必要があります。しかし、実行してもエントリは追加されません。このコードに何か問題がありますか?(基本的に、コードはいくつかのフォルダーを通過し、フォルダーの下の画像ファイルと曲を取得してデータベースに追加しますが、機能していません。)

public ActionResult Index()
        {            
            DemoDb db = new DemoDb();
            var movies = new List<SongModel>();
            MovieModel movie = new MovieModel();
            SongModel song = new SongModel();
            //Function to get all the folders present in that particular location,Use
            var folders = Directory.GetDirectories(Server.MapPath("~/Content/themes/base/songs"));

            foreach (var folder in folders)
            {
                movie.MovieName = new DirectoryInfo(folder).Name;
                string[] files = Directory.GetFiles(folder);
                string img = string.Empty;
                var list = new List<string>();
                foreach (var file in files)
                {
                    if (Path.GetExtension(file) == ".jpg" ||
                        Path.GetExtension(file) == ".png")
                    {
                        movie.Image = Path.Combine(Server.MapPath("~/Content/themes/base/songs"), file);
                    }
                    else
                    {
                        song.MovieId = movie.MovieId;
                        song.Song = Path.Combine(Server.MapPath("~/Content/themes/base/songs"), file);                        
                    }     
                }
                db.movies.Add(movie);
                db.songs.Add(song);
                db.SaveChanges();
            }              
            return View();
        }

クラスとデータベース設計もここにあります:

public class MovieModel
    {
        [Key]
        public int MovieId { get; set; }
        public string MovieName { get; set; }
        public int SongId { get; set; }
        public string Image { get; set; }
    }
    public class SongModel
    {
        [Key]
        public int SongId { get; set; }
        public int MovieId { get; set; }
        public string Song { get; set; }
    }
4

1 に答える 1

0

上記のムービーと曲を 1 つだけ作成しています。ムービー オブジェクトの値を上書きするが、コンテキストに新しいオブジェクトを追加しないすべてのフォルダーに対して、既存のムービーを再追加するだけです。また、インデックスの HttpGet メソッドではこれを行いません。http 仕様では、GET 呼び出しを繰り返してもシステム状態が毎回変更されるべきではありません (したがって、べき等である必要があります)。

于 2012-10-14T05:06:49.700 に答える