3

我经常有一组表值函数,它们返回具有相同结构(相同的列名、类型和顺序)的数据集。

如果我只是将函数拖到 Linq2Sql 设计器中,设计器将为每个函数创建一个新的匿名结果类型,并且这些函数在结果方面将不兼容。

为了告诉设计者函数具有相同的结果类型,我需要将函数拖到现有的 Linq2Sql 类上。

这很好,但我每次都必须手动创建类(在设计器区域插入一个新表,按Insert多次插入列,输入列名、客户端数据类型和服务器端数据类型)。如果有许多列和许多函数,这可能非常耗时。

有没有办法告诉设计人员通过查看表值函数来自动创建实体(表类),以便我可以将其余函数拖到该实体上?

我目前的解决方法是:

  • 在服务器上创建一个视图:

    create view dbo.stupid_linq as select * from dbo.FunctionIWant(bogus_params);
    
  • 将该视图拖到设计器中,这将创建一个实体。

  • 通过删除实体与数据库的Source.

  • 重命名实体。

  • 删除服务器上的视图。

  • 将表值函数拖到实体上。

4

0 回答 0