将SQL转换为Linq语法

时间:2017-01-09 12:43:59

标签: c# sql-server linq asp.net-mvc-4

我正在尝试将sql语句转换为linq,但确实能够做到这一点。我的sql语句是 -

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

有人可以帮我解决这个问题。

由于

3 个答案:

答案 0 :(得分:0)

使用Linqer。它是一个将SQL转换为Linq的工具。并非所有查询都可以转换,但您会发现它是一个强大的工具。

http://www.sqltolinq.com/

答案 1 :(得分:0)

你试过Linqer一个SQL-> LINQ转换器, 或LINQPad

答案 2 :(得分:0)

似乎test1是Test1类的对象表,并且该类Test1具有可空属性CID和Names,以及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)

单词:从test1Objects序列中的每个test1项开始,只获取那些具有非空值test1.CID和非空值test1.Names的test1项。按递增的Id顺序排列生成的序列

这假定CID是一个类。如果CID是可以为null的值类型,如int?或DateTime ?,您最好使用:

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