1

誰か助けてもらえますか?

コントローラに作成アクションがあります。

  public class MovieController : Controller
  {
      Connect connection = new Connect();
      Movie movie = new Movie();

      [HttpPost]
      public ActionResult Create(Movie moviecreated)
      {
        try
        {
            // TODO: Add insert logic here
            connection.Connection().AddObject(moviecreated);
            connection.Connection().Context.SaveChanges();
            return RedirectToAction("Index");
        }
        catch
        {
            return View(movie);
        }
       }
    }

私の接続クラス

public class Connect
{
    public ObjectSet<Movie> Connection() 
    { 
        var connStr = ConfigurationManager.ConnectionStrings["Entities"]; 
        ObjectContext context = new ObjectContext(connStr.ConnectionString); 
        var movieContext = context.CreateObjectSet<Movie>(); 
        return movieContext; 
    } 
 }

新しい追加を保存していませんが、何が間違っていますか?どうもありがとう。

4

2 に答える 2

1

connection()を呼び出すたびに、別のインスタンスが作成されます。新しいレコードを別のレコードに追加すると、異なるコンテキストを保存しようとします。プロパティに変更して、コンテキストを保存します。

于 2012-07-12T12:36:25.370 に答える
1

これを試して:

public class MovieController : Controller
{
  private Connect connection;
  private Movie movie;

  public MovieController() 
  {
       this.connection = new Connect();
       this.movie = new Movie();
  }

  [HttpPost]
  public ActionResult Create(Movie moviecreated)
  {
    try
    {
        // TODO: Add insert logic here
        this.connection.MovieContext.AddObject(moviecreated);
        this.connection.MovieContext.Context.SaveChanges();
        return RedirectToAction("Index");
    }
    catch
    {
        return View(movie);
    }
   }
}


public class Connect
{
    private ObjectSet<Movie> movieContext;

    public ObjectSet<Movie> MovieContext 
    {
        get
        {
            if (this.movieContext == null) 
            { 
                this.SetMovieContext(); 
            }

            return this.movieContext;
        }
    }

    public void SetMovieContext() 
    { 
        var connStr = ConfigurationManager.ConnectionStrings["Entities"]; 
        var context = new ObjectContext(connStr.ConnectionString); 
        this.movieContext = context.CreateObjectSet<Movie>(); 
    } 
}
于 2012-07-12T12:46:22.417 に答える