我经常有一组表值函数,它们返回具有相同结构(相同的列名、类型和顺序)的数据集。
如果我只是将函数拖到 Linq2Sql 设计器中,设计器将为每个函数创建一个新的匿名结果类型,并且这些函数在结果方面将不兼容。
为了告诉设计者函数具有相同的结果类型,我需要将函数拖到现有的 Linq2Sql 类上。
这很好,但我每次都必须手动创建类(在设计器区域插入一个新表,按Insert多次插入列,输入列名、客户端数据类型和服务器端数据类型)。如果有许多列和许多函数,这可能非常耗时。
有没有办法告诉设计人员通过查看表值函数来自动创建实体(表类),以便我可以将其余函数拖到该实体上?
我目前的解决方法是:
在服务器上创建一个视图:
create view dbo.stupid_linq as select * from dbo.FunctionIWant(bogus_params);
将该视图拖到设计器中,这将创建一个实体。
通过删除实体与数据库的
Source
.重命名实体。
删除服务器上的视图。
将表值函数拖到实体上。