2014-02-05 52 views
1

我不確定這是否可能。我的數據庫中有幾個特定的​​表,由實體框架的代碼第一類表示。除了總是字符串的Id屬性外,這些類具有不同的屬性。我想知道是否有創建一個通用的存儲庫,可以選擇和呈現一個只有Id屬性的序列。例如像:從實體框架中呈現IEnumerable <string>框架通用知識庫

class GetDbIds<T> where T : class 
{ 
    // PROPERTIES 
    DbContext DbContext {get;set;} 
    DbSet<T> DbSet {get;set;} 

    // CONSTRUCTOR 
    public GetDbIds(DbContext dbContext) 
    { 
     DbContext = dbContext; 
     DbSet = DbContext.Set<T>(); 
    } 

    // METHODS 
    public IEnumerable<string> GenerateNewIdSequence() 
    { 
     return DbSet.Select(x => x.Id); 
    } 
} 

我知道如何建立一個基本的通用庫,但我還沒有碰到過任何模式,也讓你動態查詢庫以及就來了。

回答

5

可以約束T到具有屬性的接口:

interface IIdentifiable { string Id { get; } } 
class GetDbIds<T> where T : IIdentifiable, class 
+0

純迷死人!感謝您的關注。完美解決方案 – user1206480