2009-10-27 40 views
0

我有许多具有相同字段的LINQ to SQL表(CreatedDateCreatedUser)。 我想一个用户控件如果数据被传递作为IQueryable<T>IEnumerable<T>用户控件显示来自多个LINQ表的字段

例如从这些字段显示的值:

public void UpdateStatus<T>(IQueryable<T> data) 
{ 
    DateTime? theDate = data.Single().CreatedDate; // doesn't work 
    string theUser = data.Single().CreatedUser; 
} 

回答

0

定义你在用户控件所需的属性的接口,然后限制通用方法来实现该接口类型:

interface IStatusInfo { 
    DateTime? CreatedDate { get; } 
    string CreatedUser { get; } 
} 

public void UpdateStatus<T>(IQueryable<T> data) where T : IStatusInfo { 
    T item = data.Single(); 
    DateTime? theDate = item.CreatedDate; 
    string theUser = item.CreatedUser; 
} 

或者,完全放弃通用位:

public void UpdateStatus(IQueryable<IStatusInfo> data) { 
    IStatusInfo item = data.Single(); 
    DateTime? theDate = item.CreatedDate; 
    string theUser = item.CreatedUser; 
} 
相关问题