使用 LINQ to SQL 访问系统数据库/表?
Posted
技术标签:
【中文标题】使用 LINQ to SQL 访问系统数据库/表?【英文标题】:Accessing System Databases/Tables using LINQ to SQL? 【发布时间】:2010-09-08 10:15:40 【问题描述】:现在我有一个每天早上运行的SSIS 包,它会向我报告前一天失败或成功的包的数量。这些包的信息部分包含在SQL Server 2005 中的msdb
数据库(系统数据库)中的sysjobs
表(系统表)中。
当试图将包移动到 C# 可执行文件时(主要是为了更好地格式化发送出去的电子邮件),我无法找到一种方法来创建允许我通过以下方式访问这些表的 dbml 文件LINQ。我试图寻找任何可以使这些表可见的属性,但我运气不佳。
LINQ to SQL 可以做到这一点吗?
【问题讨论】:
【参考方案1】:如果您在服务器资源管理器中,您可以通过这种方式使它们可见:
创建与所需服务器的连接。 右键单击服务器并选择更改视图 > 对象类型。 您现在应该看到系统表和用户表。您应该在那里看到 sysjobs,并且可以轻松地将其拖到 .dbml 表面上。【讨论】:
当我展开系统表时,我在那里看不到任何 sysjobs,如何显示 sysjobs 或它不显示的任何原因??? @Ash,您确定您使用的用户/密码有权查看这些内容吗?如果您使用集成安全性,您确定您的用户有权查看这些内容吗? 这是一个本地数据库,我是数据库所有者,但仍然看不到它,不确定是否需要其他权限才能看到它【参考方案2】:它可能在设计器中不可用,但为什么不将它添加到 DBML 文件本身呢?
【讨论】:
以上是关于使用 LINQ to SQL 访问系统数据库/表?的主要内容,如果未能解决你的问题,请参考以下文章
LINQ to SQL:对来自订购系统的多个表的报告的聚合数据进行复杂查询