用户控件显示来自多个LINQ表的字段

时间:2009-10-27 09:37:41

标签: c# linq linq-to-sql user-controls

我有许多具有相同字段的LINQ to SQL表(CreatedDateCreatedUser)。 如果数据以IQueryable<T>IEnumerable<T>

传入,我希望usercontrol显示这些字段的值

例如:

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

1 个答案:

答案 0 :(得分:0)

在usercontrol中为所需属性定义接口,然后将泛型方法限制为实现接口的类型:

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;
}