2017-01-09 93 views
0

我想sql語句轉換爲LINQ但沒能做到這一點。我的sql語句是 -轉換SQL到LINQ語法

string strSQL = string.Format("select * from test1({0}, {1}) order by ID ASC ", IsNotNull(CID), IsNotNull(Names)); 

有人可以幫助我如何轉換此。

謝謝

+0

你也可以嘗試LinqPad https://www.linqpad.net/ –

回答

0

看來,test1的是類的Test1的對象的表,而這個類的Test1有CID和名稱爲空的屬性,和一個IComparable屬性Id(所以你可以通過Id訂購)。

我不知道,如果你使用實體框架,但顯然你有話要訪問您的test1的對象表:使用實體框架

IEnumerable<Test1> test1Objects = ... 

這將是這樣的:

IEnumerable<Test1> test1Objects = myDbContext.Test1s; 

您的LINQ查詢將是:

IEnumerable<Test1> result = test1Objects 
    .Where(test1 => test1.CID != null && test1.Names != null) 
    .Orderby(test1 = test1.Id) 

在口頭上:從每TES test1Objects序列中T1項目,只需要有test1.CID的非空值和test1.Names的非空值的test1的項目。順序遞增ID順序

結果序列這假定CID是一個類。如果CID是一個可以爲空的值類型,如int?或日期時間?你最好使用:

.Where(test1 => test1.CID.HasValue() && ... 
+0

嗨,謝謝你的回覆,不幸的是,我沒有使用實體框架,我使用ado.net connectionstring。 – jacklondon

+0

但儘管如此,使用Linq,你需要一些類的IEnumerable,這些特性。該在那裏看起來類似 –

+0

謝謝,它會給我的理解 – jacklondon

0

爲此使用Linqer。它是將SQL轉換爲Linq的工具。並非所有查詢都可以轉換,但是您會發現它是一個強大的工具。

http://www.sqltolinq.com/

+0

謝謝,但沒有其他辦法,我可以做到這一點,我不能運行exe文件 – jacklondon

0

你試過Linqer的SQL-> LINQ轉換器, 或LINQPad

+0

謝謝,我不能運行exe文件 – jacklondon

+0

OK,然後請參閱此[基本LINQ查詢操作(C#)...](https://msdn.microsoft.com/en-us/library/bb397927.aspx) –