簡體   English   中英

同一數據庫上下文多個ToTable

[英]Same db context multiple ToTable

我有這樣的產品配置:

internal sealed class ProductConfiguration : EntityTypeConfiguration<Product>
{
    /// <summary>
    /// Initializes a new instance of the <see cref="ProductConfiguration"/> class.
    /// </summary>
    public ProductConfiguration()
        : base()
    {
        // Configure Properties
        HasKey(n => new { n.ID });

        // Specify the name of the table to get the data from
        ToTable("vw_Products");
    }
}

然后我可以使用上下文

public IDbSet<Product> Products { get; set; }

一切都很好。 但是,我有一部分站點正在使用一組過濾的產品,並且使用新視圖過濾產品比使用實體框架過濾產品更快(不到1秒,而不是使用linq查詢過濾5秒)在ef)

有沒有一種方法可以僅針對試圖獲取過濾的上下文而不必創建新實體的特定實例來更改ToTable值。

因此,例如,我從哪里獲得產品-

context.Products

我可以更改表格以查看新視圖嗎?

我嘗試復制配置以查看新視圖,然后添加新的dbset,如下所示:

public IDbSet<Product> DesignerProducts { get; set; }

但這似乎不起作用(除非有一種方法可以將配置指向該特定的dbset?)

所以我想我的問題是,是否有一種方法可以將配置指向特定的dbset(如果實體相同),或者有一種方法可以在查詢時將上下文指向特定的視圖

實際上,我想要一個具有以下2個dbset的上下文:

public IDbSet<Product> Products { get; set; }
public IDbSet<Product> DesignerProducts { get; set; }

好的,我認為不可能實現我想要的目標,因此為了解決這個問題,我不得不創建一個新的上下文並將新的過濾列表放入其中。 如果有人能想到更好的方法,請隨時發布答案

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM