2016-05-26 81 views
0

我需要編寫一個linq查詢來檢查sql表中是否存在一個ID,如果ID存在,則需要檢查一個字段是否爲null或不在同一個表中。實體框架中的多重條件

我是新的實體框架,請大家幫忙。

目前國內做的是這樣的: -

我在這裏通過兩種方法中選擇,如果第一種方法返回true,我檢查了第二種方法。基於這個價值,我需要啓用/禁用選項卡。

public bool GetCompanyInfoById(int customerId) 
     { 
      using (var context = new eSmoEntities()) 
      { 
       bool companyExist = context.tm_cmd_company_details.Any(x=>x.com_id.Equals(customerId)); 
       return companyExist; 
      } 
     } 

     public bool GetGroupForCompany(int customerId) 
     { 
     using (var context = new eSmoEntities()) 
      { 
       var customer = context.tm_cmd_company_details.Where(x => x.com_id == customerId).Select(x=>x.cmd_group_id).FirstOrDefault(); 
       return customer != null ? true : false; 
      } 
     } 
+1

如果您顯示實體定義和/或示例查詢(工作與否),這將有所幫助。通常這樣的條件可以通過一個類似於'where new {x.A,x.B}等於new {y.A,y.B}'的連接子句來完成' –

回答

0

您首先找到具有給定Id的實體,例如= 1。

var entity = dbContext.AnyTable.FirstOrDefault(t => where t.Id =1); 
if (entity != null) 
{ 

    if (entity.AnyField != null) 
    { 

    } 
} 

在這個apporach中,你必須使用急切的加載。如果你使用Lazy加載,那麼實體將在運行時加載。

2

這是一個非常瑣碎的問題,你只需要爲你的LINQ查詢兩個布爾條件:

Context.MyItems.Any(i => i.ID == suppliedID && i.OtherProperty != null) 

顯然,如果你提供你的EntityFramework模型中,這會更容易具體回答。

這只是問題的一半;你想要做什麼之後?選擇一個符合您的規格的項目?如果滿足這些條件,做些什麼?看起來您需要在進入Stack Overflow之前自行考慮問題,並要求您提供複製粘貼的完整解決方案。