0

これは、専門家が解決する単純で簡単な問題のはずですが、私はこれを理解することができません.

VS 2012 をダウンロードしました。ASP.NET Web サイトの「Contoso University Web Application」オンライン チュートリアルを実行します。これは、MVC4 および EF5 で動作しています。

レッスン 1 のコントローラを作成する部分に到達すると、次のエラーが表示されます。

「'ContosoUniversity.Models.Course' のメタデータを取得できません。メソッドが見つかりません: 'Void System.Data.Objects.ObjectsContextOptions.set_UserConsistentNullReferenceBehavior(Booleon)'.

基本的に、このエラーが発生しないとコントローラーを作成できません。ダウンロードプロセスとチュートリアルを正しく実行したように感じました. しかし、ある種のバグがあります。

レッスンからそのまま使用している接続文字列は次のとおりです。

<
add name="SchoolContext" 
connectionString="Data Source=(LocalDb)\v11.0;
Initial Catalog=ContosoUniversity;
Integrated Security=SSPI;
AttachDBFilename=|DataDirectory|\ContosoUniversity.mdf" providerName="System.Data.SqlClient" 
/>

モデルは次のとおりです。

namespace ContosoUniversity.Models
{
    public class Course
    {
        [DatabaseGenerated(DatabaseGeneratedOption.None)]
        public int CourseID { get; set; }
        public string Title { get; set; }
        public int Credits { get; set; }

        public virtual ICollection<Enrollment> Enrollments { get; set; }
    }
}

SchoolContext は次のとおりです。

namespace ContosoUniversity.DAL
{
    public class SchoolContext : DbContext
    {
        public DbSet<Student> Students { get; set; }
        public DbSet<Enrollment> Enrollments { get; set; }
        public DbSet<Course> Courses { get; set; }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
        }
    }
}
4

1 に答える 1

1

このセクションを web.config ファイルの entityFramework 要素に追加してください。MVC スキャフォールディングは、このタイプを使用してデータベース コンテキストを検索します。データベース初期化子を使用してテスト データを DB にロードする場合は、以下のように追加する必要があります。

<entityFramework>
  <contexts>
    <context type="ContosoUniversity.DAL.SchoolContext, ContosoUniversity">
      <databaseInitializer type="ContosoUniversity.DAL.SchoolInitializer, ContosoUniversity" />
    </context>
  </contexts>
<entityFramework>
于 2014-03-07T07:40:59.747 に答える