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