У меня есть несколько таблиц с одинаковым столбцом domainID
, который в основном просто контролирует, какие данные отображаются на каком веб-сайте, поскольку они совместно используют базу данных.
Так что, когда я иду ктаблица для элемента управления Мне нужно было бы создать большой переключатель для обработки различных запросов LINQ.Я хотел бы создать служебный метод, который принимает тип таблицы в качестве параметра, а затем возвращает предложение where на основе столбца в переданной таблице.
public static IEnumerable<T> ExecuteInContext<T>(
IQueryable<T> src)
{
int domain = 1;//hard coded for example
return src.Where(x => x.DomainID == domain);//Won't work, has to be a way to do this.
}
Я застрял в коде возврата.Вы не можете просто создать предложение where, как я в настоящее время, потому что оно не знает, о какой таблице я говорю.
Я пытаюсь вызвать первый метод, подобный этому:
using (DataClasses1DataContext db = new DataClasses1DataContext())
{
var q = Utility.ExecuteInContext(db.GetTable<item>());
Repeater1.DataSource = q;
Repeater1.DataBind();
}
Надеюсь, это объясняет, что я пытаюсь сделать.
Редактировать: Ответ BrokenGlass решил мою проблему.Я хотел бы добавить, что вам нужно открыть файл .dbml.cs и расширить таблицу / класс своим интерфейсом.Я также хотел указать, что проект не будет построен, если мой столбец будет обнуляемым, в нем говорится, что это не тот тип возвращаемого значения, что и мой интерфейс.