Usercontrol для отображения полей из нескольких таблиц LINQ - PullRequest
0 голосов
/ 27 октября 2009

У меня есть несколько таблиц LINQ to SQL с одинаковыми полями (CreatedDate и CreatedUser). Я хотел бы, чтобы usercontrol отображал значения из этих полей, если данные передаются как IQueryable<T> или IEnumerable<T>

Например:

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

1 Ответ

0 голосов
/ 27 октября 2009

Определите интерфейс для свойств, которые вы хотите в 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;
}
...