はい、可能です - 作成または移行機能 (EF 5.0) に依存しない場合。
そのため、最初に app.config と名前付き構成を使用して、SQL CE プロバイダーを使用するように EF を構成します。
<connectionStrings>
<add name="TestDatabase"
providerName="System.Data.SqlServerCe.3.5"
connectionString="Data Source=test.sdf"/>
</connectionStrings>
と
public class TestDbDataContext : DbContext
{
public TestDbDataContext() : base("TestDatabase") { }
}
データ コンテキストを使用する前に、作成および移行機能を無効にする
Database.SetInitializer<TestDbDataContext>(null);
これでデータベースにアクセスできます。明らかに、手動でテーブルを作成する必要があります。
警告:
サーバー生成キーの挿入は、CE 3.5 では機能しません。そのため、クライアント側でそれらを管理する必要があります (キーの競合を防ぐために GUID を使用することをお勧めします)。さらに、キーを自分で管理する予定がある場合でも注意が必要です。このようにキーを定義する
[Key]
Guid Id { get; set; }
キーがサーバー側で生成されたと EF に信じ込ませます。したがって、EF の流暢な API を使用して主要なプロパティを定義し、DatabaseGeneratedOption
を Noneに設定する必要があります。
this.Property(p => p.ProductId)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.None)
.IsRequired();
this.HasKey(p => p.ProductId);
これは、構成クラス (サンプルのように) またはデータ コンテキストのOnModelCreating
関数で実行できます。