0

2 つのテーブルがあります (1:N)

CREATE TABLE master (idMaster int identity (1,1) not null,
 TheName varchar( 100) null,
 constraint pk_master primary key(idMaster) clustered)

と -

CREATE TABLE lnk (idSlave int not null,
 idMaster int not null,
 constraint pk_lnk_master_slave(idSlave) primary key clustered)

Master.idMaster と lnk.idMaster の間のリンク

私はSQLクエリを持っています:

 select max (master.idMaster) as idMaster,
        master.theName,
        count (lnk.idSlave) as freq
  from lnk 
  inner join master ON lnk.idMaster = master.idMaster
  Group by master.theName
  order by freq desc, master.theName

この T-SQL クエリを、できれば C# の Linq-to-SQL ステートメントに変換する必要があります。

4

1 に答える 1

0

Linq-to-SQL クエリの正確な sql 出力を制御することはできませんが、これでうまくいくはずです。

var results = from slave in dataContext.lnks
                  group slave by slave.idMaster
                      into slaveByMaster
                        let count = slaveByMaster.Count()
                      orderby count
                      select new
                      {
                          slaveByMaster.Key,
                          count,
                      };

max(master.idMaster) を計算するには、別のクエリが必要です。このようなもの:

            var result2 = (from master in dataContext.masters
                       select master.idMaster).Max();
于 2010-03-10T11:06:35.240 に答える