[英]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.