C# LINQ到SQL关联映射
我正在开发一个简单的命令行应用程序,教自己一些C#中的LINQ to SQL。我有一个SQL Server 2008实例,我正在尝试在MSDB中查找SQL Server上当前设置的作业。我想将作业名称输出为一个点,步骤名称和实际的SQL语句如下所示:C# LINQ到SQL关联映射,c#,.net,sql-server,linq,linq-to-sql,C#,.net,Sql Server,Linq,Linq To Sql,我正在开发一个简单的命令行应用程序,教自己一些C#中的LINQ to SQL。我有一个SQL Server 2008实例,我正在尝试在MSDB中查找SQL Server上当前设置的作业。我想将作业名称输出为一个点,步骤名称和实际的SQL语句如下所示: use msdb go select j.name + '.' + s.step_name from sysjobs j join sysjobsteps s on j.job_id = s.job_id order by j.name go
use msdb
go
select j.name + '.' + s.step_name
from sysjobs j
join sysjobsteps s on j.job_id = s.job_id
order by j.name
go
我不知道如何在C#代码中建立SysJobs和SysJobSteps之间的关系,我一直收到以下错误消息:
System.InvalidOperationException: Invalid association mapping for member
'ServerCompare.Lib.Commands.SysJob.SysJobSteps'.
'ServerCompare.Lib.Commands.SysJob' is not an entity.
请告知执行此操作的最佳方法是什么?您需要先创建一个dbml文件,添加这两个表,然后使用以下方法:
using (var context = new DataClasses1DataContext())
{
var result = from s in context.sysjobs
orderby s.name
join sjs in context.sysjobsteps on s.job_id equals sjs.job_id
select new {Name = s.name + "." + sjs.step_name};
}
要使用系统表创建dbml,您需要先创建连接,然后右键单击服务器->更改视图->对象类型,您现在应该可以看到所有系统表。然后添加这两个表 两个表都必须有一个已定义的主键。使用
列(Name=“whatever\u id”,IsPrimaryKey=true)
给我们一些linq to sql代码!我在这里用C#发布了我试图实现的示例代码:我非常确定这是解决大多数人问题的答案。