Pet*_*ter 18 c# t-sql linq-to-entities
我对以下查询感到茫然,这是普通T-SQL中的花生.
我们有三个物理表:
现在我要做的是获取一个链接到Band的MusicStyles列表,其中包含一个特定搜索字符串的名称.带名应该在结果中.
T-SQL将是这样的:
SELECT b.Name, m.ID, m.Name, m.Description
FROM Band b
INNER JOIN BandMusicStyle bm on b.BandId = bm.BandId
INNER JOIN MusicStyle m on bm.MusicStyleId = m.MusicStyleId
WHERE b.Name like '%@searchstring%'
Run Code Online (Sandbox Code Playgroud)
我如何在Linq To Entities中写这个?
PS:由于某些奇怪的原因,StackOverflow不允许搜索字符串'many to many'...
Pet*_*ter 27
事实证明这比看起来简单得多.我使用以下博文解决了这个问题:http://weblogs.asp.net/salimfayad/archive/2008/07/09/linq-to-entities-join-queries.aspx
此解决方案的关键是将乐队名称的过滤器应用于musicstyle集合的Bands子集.
var result=(from m in _entities.MusicStyle
from b in m.Band
where b.Name.Contains(search)
select new {
BandName = b.Name,
m.ID,
m.Name,
m.Description
});
Run Code Online (Sandbox Code Playgroud)
注意这条线
from b IN m.Band
Run Code Online (Sandbox Code Playgroud)
这可以确保您只对具有musicstyle的乐队进行过滤.
谢谢你的答案,但没有一个真正解决了我的问题.
| 归档时间: |
|
| 查看次数: |
26932 次 |
| 最近记录: |