Dot-Net

如何在程式碼優先實體框架中使用視圖

  • September 18, 2011

如何首先在實體框架程式碼中使用數據庫視圖,

如果像我一樣,您只對映射來自其他數據庫(在我的情況下為 erp)的實體感興趣,以將它們與特定於您的應用程序的實體相關聯,那麼您可以像使用表一樣使用視圖(將視圖映射到以同樣的方式!)。顯然,如果您嘗試更新該實體,如果視圖不可更新,您將收到異常。該過程與普通(基於表格)實體的情況相同:

  1. 為視圖創建一個 POCO 類;例如 FooView
  2. 在 DbContext 類中添加 DbSet 屬性
  3. 使用 FooViewConfiguration 文件為視圖設置不同的名稱(在建構子中使用 ToTable(“Foo”); )或設置特定屬性
public class FooViewConfiguration : EntityTypeConfiguration<FooView>      
{
   public FooViewConfiguration()
   {
       this.HasKey(t => t.Id);
       this.ToTable("myView");
   }
}
  1. 將 FooViewConfiguration 文件添加到模型建構器,例如覆蓋 Context 的 OnModelCreating 方法:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
   modelBuilder.Configurations.Add(new FooViewConfiguration ());
}

引用自:https://stackoverflow.com/questions/7461265