サーチ…


既存のデータベースに接続する

Entity Frameworkで最も簡単なタスクを達成するには、ローカルインスタンスのMSSQLの既存のデータベースExampleDatabaseに接続するには、2つのクラスのみを実装する必要があります。

まず、エンティティクラスがデータベーステーブルdbo.Peopleマップされます。

    class Person
    {
        public int PersonId { get; set; }
        public string FirstName { get; set; }
    }

クラスは、Entity Frameworkの規約を使用し、主キーPersonIdとvarchar(max)プロパティFirstNameを持つと予想されるテーブルdbo.Peopleマップします。

次に、 System.Data.Entity.DbContextから派生し、実行時にエンティティオブジェクトを管理し、データベースから取得し、並行処理を処理し、データベースに保存するコンテキストクラスです。

    class Context : DbContext
    {
        public Context(string connectionString) : base(connectionString)
        {
            Database.SetInitializer<Context>(null);
        }

        public DbSet<Person> People { get; set; }
    }

コンテキストのコンストラクタでは、データベース初期化子をnullに設定する必要があることに注意してください。Entity Frameworkでデータベースを作成する必要はなく、単にアクセスしたいだけです。

今度は、そのテーブルのデータを操作することができます。例えば、データベースの最初の人のFirstNameを次のようなコンソールアプリケーションから変更します。

    class Program
    {
        static void Main(string[] args)
        {
            using (var ctx = new Context("DbConnectionString"))
            {
                var firstPerson = ctx.People.FirstOrDefault();
                if (firstPerson != null) {
                    firstPerson.FirstName = "John";
                    ctx.SaveChanges();
                }
            }
        }
    }

上記のコードでは、引数 "DbConnectionString"を使用してContextのインスタンスを作成しました。これはapp.configファイルで次のように指定する必要があります:

  <connectionStrings>
    <add  name="DbConnectionString" 
    connectionString="Data Source=.;Initial Catalog=ExampleDatabase;Integrated Security=True" 
    providerName="System.Data.SqlClient"/>
  </connectionStrings>


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow