datacontext Linq to sql的扩展方法

时间:2009-12-15 14:44:32

标签: c# .net linq-to-sql generics

是否可以在DataContext上创建扩展方法,而不是在datacontext中的表上,而是直接在dataContext上创建扩展方法,以动态获取表。

例如:

DataContext dc = new DataContext();

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

ps:我已经知道dc.GetTAbledc.GetTable<T>

4 个答案:

答案 0 :(得分:2)

这是可能的,但由于该类是部分的,您只需在不同的文件中添加您的方法

答案 1 :(得分:2)

示例:

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

    }
}

答案 2 :(得分:2)

这样的事情应该有效:

public static IQueryable myExtensionMethod(this DataContext dc)
{
    ...
}

答案 3 :(得分:2)

我不确定你的args是什么,或者你是否想要匹配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
         }
    }
}