2010-07-05 126 views
-1

請任何人都可以幫我把這個sql查詢寫入Linq。sql查詢到Linq

select 
    P.ID, 
    P.Name, 
    Set_selected= 
    case when exists(
    select C.ClassifierID 
    from dbo.ProductClassifiers C 
    where C.ProductID=130 and C.ClassifierID=P.ID) 
    then 'Yes' else 'No' end 
    from dbo.Classifier P 

回答

0
var retVal = (from s in dataContext.ProductClassifiers 
      join k in dataContext.Classifier 
      on s.ClassifierId equals k.Id 
      where s.ProductId == 30 
      select new {write here what values you want to get like s.Id,k.Name etc}).ToList(); 
0

未經檢驗的,但希望工作:

var q = classifier.Select(
    p => new { 
    p.ID, 
    p.Name, 
    Set_selected = productClassifiers 
     .Select(c => c.ProductID == 130 && c.ClassifierID == p.ID) 
     .Any() ? "Yes" : "No" 
    } 
); 

的代碼假定您有兩個IEnumerable<T>代表ClassifierProductClassifiers表。

0

下面是一個嘗試:

var query = from p in dataContext.Classifiers 
      select new { 
       p.ID, 
       p.Name, 
       p.Selected = dataContext.ProductClassifiers 
             .Where(c => c.ProductID == 130 && 
                c.ClassifierID == p.ID) 
             .Any() 
      }; 

(這將使Selected財產布爾而非是/否,但通常將是更容易使用)

你應該看什麼翻譯後的SQL看起來像是,特別是查詢計劃與您的原始版本相比的情況。