2017-03-07 75 views
0

我在我的項目中有以下方法。實體框架地圖模型到表

public IEnumerable<T> GetAll() 
    { 
     return _context.Set<T>().ToList(); 
    } 

然後我的DbContext有這個..

 protected override void OnModelCreating(DbModelBuilder modelBuilder) 
     { 

       Entity<Product>.ToTable("Product"); 

     } 

這工作得很好,只要 「產品」 型號是同一個項目中。

但是,不同的客戶端將使用我的DataAccess層,他們將傳遞不同類型的模型。我如何告訴EntityFramework動態地將模型綁定到SQL服務器中的「表」。

+0

他們可以提供自己的[EntityTypeConfiguration]類(http://www.entityframeworktutorial.net/code-first/entitytypeconfiguration-class.aspx)。 –

+0

我很難找到它的一個例子 – Khan

回答

0

我能夠通過執行以下操作來解決此問題。

public class Repository<T> : DbContext, IRepository<T> where T : BaseModel 
{ 

    public DbContext _context { get; set; } 
    public DbSet<T> _dbSet { get; set; } 

    public Repository(string con) 
     : base(con) 
    { 

    } 

    public IEnumerable<T> GetAll() 
    { 
     return _dbSet; 
    } 

    public void Add(T entity) 
    { 
     _dbSet.Add(entity); 
     _context.SaveChanges(); 
    } 


} 

Basicly的步驟...

  • A.類必須繼承的DbContext。
  • DbSet的通用屬性。

現在DbSet是一個通用的表,你可以在你的通用Repoitory使用。