SubSonic 3.0 中的 SQL 视图

13
有没有办法在SubSonic 3.0中访问我的SQL视图?代码生成似乎完全跳过了视图。
2个回答

27

要在您的项目中包含视图

只需打开 SQLServer.ttinclude 找到加载表的查询(搜索'const string TABLE_SQL') 然后将其更改为

const string TABLE_SQL=@"SELECT *
    FROM  INFORMATION_SCHEMA.TABLES
    WHERE TABLE_TYPE='BASE TABLE' 
    union
    select Table_catalog, table_schema, table_name, 'View' table_type 
    from information_schema.views";

如果你在使用ASP.NET项目中,你可以这样排除aspnet的表和视图

const string TABLE_SQL=@"SELECT *
    FROM  INFORMATION_SCHEMA.TABLES
    WHERE TABLE_TYPE='BASE TABLE' 
        and table_name not like '%aspnet_%'
    union
    select Table_catalog, table_schema, table_name, 'View' table_type 
    from information_schema.views
    where table_name not like '%aspnet_%'";

2
唯一的问题是视图对象上有Save()、Delete()等方法,这些方法并不真正适用于视图。 - Jeremy Coenen
我尚未尝试过保存或删除视图,但从SQL的角度来看,更新视图是可以实现的。我想最好的解决方案是创建一个视图模板并返回只读对象。 - freddoo

0

SubSonic 3模板尚未为视图生成代码。不过,您可以很容易地自己添加该功能,只需查看SQLServer.ttinclude中的LoadTables和GetSPs方法,了解SubSonic如何构建表\存储过程列表即可。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接