2013-09-20 2 views
1

Просто интересно, как написать следующий SQL в синтаксисе LINQКак написать следующее в синтаксисе LINQ?

select * from COESDetails 
where COESNo in 
(select distinct COESNo from COESDefects) 

либо Fluent или запроса выражений, или оба

COESDefects имеют свойство навигации к COESDetails

public class COESDefects 
{ 

    public int Id { get; set; } 
    public int COESNo { get; set; } 
    public string Comments { get; set; }  

    public virtual COESDetails COESDetails { get; set; } 

} 

public class COESDetails 
{ 
    public COESDetails() 
    {   
     COESDetailsCOESDefects = new List<COESDefects>();   
    } 

    public int COESNo { get; set; } 
    public int Postcode { get; set; }  
    public virtual ICollection<COESDefects> COESDetailsCOESDefects { get; set; }    
} 

Благодаря

+0

Есть ли у вас какие-либо навигационные свойства на COESDetails или COESDefects или внешних ключей отношений какой-то? Используете ли вы Entity Framework с DBContext? Любая дополнительная информация вообще? Это было бы полезно, чтобы дать вам ответ, который не является низким качеством. – Guttsy

+0

обновленный вопрос с навигационными свойствами - спасибо – user2206329

ответ

0

Я чувствую, что все будет так просто:

yourDbContext.COESDetails.Where(detail => detail.COESDetailsCOESDefects.Any()).ToList(); 

Исправьте меня, если я ошибаюсь.

+0

awesome ... только одна модификация yourDbContext.COESDetails.Where (detail => detail.COESDetailsCOESDefects.Any()). ToList(); – user2206329

+0

К сожалению, очевидная ошибка. Я пишу их весь день, не знаю, как я это пропустил. – Guttsy

0

Иногда, если запрос является сложным, проще просто выполнить его непосредственно, например.

IEnumerable<COESDetails> myResults = dbConext.ExecuteQuery<CCOESDetails>("select * from COESDetails where COESNo in (select distinct COESNo from COESDefects)") 
1

Попробуйте это:

var query = 
    from x in context.COESDetails 
    join y in context.COESDefects on x.COESNo equals y.COESNo into ys 
    where ys.Any() 
    select x; 
Смежные вопросы