代码之家  ›  专栏  ›  技术社区  ›  Ian Ringrose

如何将使用linq查询的表切换为sql

  •  0
  • Ian Ringrose  · 技术社区  · 15 年前

    我们有两个具有相同列集的表;根据对象的“类型”,该值存储在两个表中的一个表中。我想使用公共代码来访问这两个表。

    如果我使用的是原始SQL,我可以使用string.format()来更改表名。

    (同样适用于更新等)


    由于数据访问模式与 常见的 查询两个表,因此需要不同的索引。视图,而不是触发器等,使表看起来像一个单一的表不喜欢这里。我们的许多客户使用低端版本的sqlserver,因此我们不能使用分区表。


    更新:

    部分原因是我有很多方法

    IQueryable<Event> AddFlexibleFieldsFilter(
       FlexibleFields flexibleFields, 
       IQueryable<Event> qry, 
       IQueryable<EventFlexibleField> fields
       )
    

    使用子类或接口不能很好地处理泛型类型(我们仍然使用.NET3.5)

    1 回复  |  直到 15 年前
        1
  •  0
  •   Community CDub    8 年前

    可悲的是,没有简单的方法。可以创建两个xml映射,然后通过显式 DataContext constructor 在运行时。相关链接:

    这肯定会弄脏linq-to-sql逻辑,因为在创建datacontext之前,您需要确定使用的是哪种类型。

    我可以考虑将两个数据访问类映射到任意一个表,其中一个主类从给定类型的适当源获取数据。然后,开发人员可以使用master类,而不必担心数据来自何处。