Метод расширения на datacontext Linq для sql - PullRequest
0 голосов
/ 15 декабря 2009

Можно ли создать метод расширения для DataContext, не для таблицы в datacontext, а непосредственно для dataContext, чтобы динамически получить таблицу.

например:

DataContext dc = new DataContext();

var test = from a in dc.myExtensionMethod(args) select a;

пс: я уже знаю dc.GetTAble и dc.GetTable<T>

Ответы [ 4 ]

2 голосов
/ 15 декабря 2009

Я не уверен, что ваши аргументы, или если вы хотите соответствовать подписи GetTable, но ...

namespace System.Data.Linq
{
    public static class DataContextExtensions
    {
         public static (Table<T>,IQueryable, whatever) 
            MyExtensionMethod(this DataContext context, Args args)
         {
            //do your magic here
         }
    }
}
2 голосов
/ 15 декабря 2009

Пример:

namespace System.Data.Linq
{
    public static class DataContextExtensions
    {
        public static bool IsConnected(this DataContext context)
        {
            return (context.Connection.State == ConnectionState.Open);
        }

    }
}
2 голосов
/ 15 декабря 2009

Примерно так должно работать:

public static IQueryable myExtensionMethod(this DataContext dc)
{
    ...
}
2 голосов
/ 15 декабря 2009

Это возможно, но поскольку класс является частичным, вы можете просто добавить свой метод в другой файл

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...