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"); } }
さんのコメント: さんのコメント: