我正在尝试将sql语句转换为linq,但确实能够做到这一点。我的sql语句是 -
string strSQL = string.Format("select * from test1({0}, {1}) order by ID ASC ", IsNotNull(CID), IsNotNull(Names));
有人可以帮我解决这个问题。
由于
答案 0 :(得分:0)
使用Linqer。它是一个将SQL转换为Linq的工具。并非所有查询都可以转换,但您会发现它是一个强大的工具。
答案 1 :(得分:0)
答案 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() && ...