【发布时间】:2017-08-15 03:08:47
【问题描述】:
这是我的桌子:
create table customer
(
cid int primary key,
name varchar(32)
)
create table ord
(
oid int primary key,
cid int foreign key references customer,
address varchar(20)
)
这是我的 Linq-to-SQL 语句:
var aaa = from c in db.Customer
select new { c, o = c.Ord.ToList() };
这是由 Linq-to-SQL 生成的莫名其妙的查询:
SELECT
[t0].[cid] AS [Cid], [t0].[name] AS [Name], [t1].[oid] AS [Oid],
[t1].[cid] AS [Cid2], [t1].[address] AS [Address],
(SELECT COUNT(*)
FROM [dbo].[ord] AS [t2]
WHERE [t2].[cid] = [t0].[cid]) AS [value]
FROM [dbo].[customer] AS [t0]
LEFT OUTER JOIN [dbo].[ord] AS [t1] ON [t1].[cid] = [t0].[cid]
ORDER BY [t0].[cid], [t1].[oid]
我想了解如何摆脱 COUNT(*) 部分。这完全没有必要!
【问题讨论】:
标签: sql-server linq linq-to-sql