コードファーストアプローチ
本製品 からモデルを確認するもう1つの方法は、モデルクラスを記述することです。これは、Entity Framework におけるコードファーストアプローチで、アプリケーションで使用するデータモデルをより詳細に制御することができます。
Entity Framework のインストール
Entity Framework をインストールするか、選択したバージョンのEntity Framework で必要とされるアセンブリへの参照を追加します。Entity Framework 6 の使用については、EF 6の使用 を参照してください。本製品 に付属するすべてのアセンブリの詳細については、インストールされるアセンブリ を参照してください。
プロバイダーの登録
App.Config またはWeb.config に接続文字列を追加します。多くの場合、connectionStrings ノードはルート構成ノードのconfigSection ノードの直下にあります。
<configuration> ... <connectionStrings> <add name="SharePointContext" connectionString="User=MyUserAccount;Password=MyPassword;Auth Scheme=NTLM;URL=http://sharepointserver/mysite;" providerName="System.Data.CData.SharePoint" /> </connectionStrings> ... </configuration>
コンテキストクラスの作成
最初に、SharePoint コンテキストクラスを作成します。これは、DbContext を拡張し、データソース内のテーブルを示すDbSet プロパティを公開する基本オブジェクトです。次に、OnModelCreating メソッドをオーバーライドして、DbContext クラスの一部のデフォルト機能をオーバーライドします。次のコードでは、これらのプロパティについて説明しています。
using System.Data.Entity; using System.Data.Entity.Infrastructure; using System.Data.Entity.ModelConfiguration.Conventions; class SharePointContext : DbContext { public SharePointContext() { } public DbSet<Calendar> Calendar { set; get; } protected override void OnModelCreating(DbModelBuilder modelBuilder) { // To remove the requests to the Migration History table Database.SetInitializer<SharePointContext>(null); // To remove the plural names modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); //For versions of EF before 6.0, uncomment the following line to remove calls to EdmTable, a metadata table //modelBuilder.Conventions.Remove<IncludeMetadataConvention>(); } }
テーブルモデルの作成
最後に、コンテキストクラスのDbSet プロパティで定義された各テーブルのクラスを定義します。テーブルクラスには、そのテーブルの各フィールドに対応するプロパティのリストが含まれている必要があります。テーブルクラスの各プロパティの属性を設定するには、対応するマップクラスを定義する必要があります。
using System.Data.Entity.ModelConfiguration; using System.ComponentModel.DataAnnotations.Schema; //EF 6 and later //using System.ComponentModel.DataAnnotations //For versions of EF before 6 [System.ComponentModel.DataAnnotations.Schema.Table("Calendar")] public class Calendar { [System.ComponentModel.DataAnnotations.Key] public System.String Id { get; set; } public System.String Location { get; set; } }
コードでLINQ コマンドを実行する
これで、コードでLINQ を使用する準備が整いました。ファイルで必ず"using System.Linq" を宣言してください。
SharePointContext ents = new SharePointContext(); var CalendarQuery = from Calendar in ents.Calendar orderby Calendar.Location select Calendar;