代码之家  ›  专栏  ›  技术社区  ›  Kiquenet user385990

使用动态表的LINQ to SQL

  •  1
  • Kiquenet user385990  · 技术社区  · 15 年前

    我正在开发应用程序VS2008,.NET3.5,我正在尝试使用LINQtoSQL。我在设计器上拖放表以生成.dbml文件。

    我的问题是我有一些用于搜索索引的动态表。

    我知道表的结构,只有应用程序会创建这样的新表:

    Files_1_1, Files_1_2, ... Files_m_n
    
    DataSearch_1_1, DataSearch_1_2, DataSearch_m_n
    

    在这种情况下, m n 是表名称中的整数。

    我还没弄清楚。我也很满意能够为这个表生成linqtosql类。

    有人想出解决这个问题的办法吗?在过去的一天里,我一直在浏览博客和论坛,但都是徒劳。任何示例代码对我都很好。

    1 回复  |  直到 8 年前
        1
  •  2
  •   Coding Flow    15 年前

    链接到sql与存储过程一起工作,设计器将为返回类型自动创建一个类。您可以在sp中使用动态sql并将linq返回到sql类。

    您可以创建如下所示的存储过程:

    CREATE PROCEDURE spGetFiles
    (
        @TableName
    )
    AS
    
    EXEC('SELECT * FROM " + @TableName)
    

    然后在VisualStudio O/R设计器中,从服务器资源管理器中选择SP,并将其拖动到设计器窗口中,方法与添加表的方式相同。将在数据上下文类上创建一个与SP同名的方法,并创建一个名为spgetfilereturntype的类(我可能对这个命名有点错误,但您理解了这一点)。然后,只需使用表名作为字符串参数调用datacontext方法,就会返回spGetFileReturnType对象的集合。