モデルクラスをビューにマッピングする

samatsu 7/9/2015 4882 N/A Code First

Entity Framework コードファーストはビューにマッピングできます。EF Code First自体はテーブルと同じように扱うため、ビューが更新できない場合、修正操作を行うとエラーになります。規約通りではない名前やスキーマのビューにマッピングする場合は、 Data Annotations か FluentAPI を使用します。

1.Data Annotations を使用する場合

TableAttributeを使用する場合、次のようにマッピング対象のビュー名を指定します。

[Table("FilteredRole")] 
public class Role 
{ 
    [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    public Guid RoleId { get; set; } 
    public string Name { get; set; } 
    public ICollection<SystemUser> RoleMembers { get; set; } 
}

2.Fluent API を使用する場合

System.Data.Entity.ModelConfiguration.Entity().ToTable を使用します。サンプルではスキーマ名も指定しています。既定ではdboです。

public class DynMSCRMContext : DbContext 
{ 
    public DynMSCRMContext(string nameOrConnectionString) : base(nameOrConnectionString) { } 
  
    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
        modelBuilder.Entity<Role>().ToTable("FilteredRole", "dbo");             
    } 
}