使用 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,其中数据库表可以有额外的列

LINQ to SQL模型 是啥意思

LINQ to SQL:对来自订购系统的多个表的报告的聚合数据进行复杂查询

使用 LINQ To SQL / SQL CE 创建表

数据访问层 - LINQ-To-SQL 和泛型。我可以优化这个吗?

使用 Linq to sql 从两个表中获取所有数据