Entity Framework
Entity Frameworkコードファースト
サーチ…
既存のデータベースに接続する
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