ALinq 中的Where条件查询和 Linq to SQL 中的Where条件查询是一样的操作方式。其作用也就是过滤查询。
1. ALinq 的简单查询
ALinq 的简单查询
1
public
void
Function()
2 {
3 OA_DBDataContext context = new OA_DBDataContext( new SqlConnection(connectionString));
4 context.Log = Console.Out;
5 var alinq = from m in context.TabMenu select m;
6 foreach (TabMenu menu in alinq)
7 {
8 Console.WriteLine(menu.Id + " ==> " + menu.MenuName);
9 }
10 }
2 {
3 OA_DBDataContext context = new OA_DBDataContext( new SqlConnection(connectionString));
4 context.Log = Console.Out;
5 var alinq = from m in context.TabMenu select m;
6 foreach (TabMenu menu in alinq)
7 {
8 Console.WriteLine(menu.Id + " ==> " + menu.MenuName);
9 }
10 }
上面的代码中,变量connectionString 是连接数据的的字符串。这段代码是使用ALinq 库来进行查询数据库表TabMenu 的全部数据,并输出对应列的信息。这里做了日志的处理,可以在控制台打印出ALinq生成的SQL语句。
2.ALinq 的where条件查询
ALinq where条件查询
1
///
<summary>
2 /// ALinq where 条件查询
3 /// </summary>
4 public void FunctionWhere()
5 {
6 OA_DBDataContext context = new OA_DBDataContext( new SqlConnection(connectionString));
7 context.Log = Console.Out;
8 var alinq = from m in context.TabMenu where m.Id > 6 select m;
9 foreach (TabMenu menu in alinq)
10 {
11 Console.WriteLine(menu.Id + " ==> " + menu.MenuName);
12 }
13
14 Console.WriteLine( " \n " );
15 IList < TabMenu > list = context.TabMenu.Where(m => m.Id > 6 ).ToList < TabMenu > ();
16 foreach (TabMenu menu in list)
17 {
18 Console.WriteLine(menu.Id + " ==> " + menu.MenuName);
19 }
20 }
2 /// ALinq where 条件查询
3 /// </summary>
4 public void FunctionWhere()
5 {
6 OA_DBDataContext context = new OA_DBDataContext( new SqlConnection(connectionString));
7 context.Log = Console.Out;
8 var alinq = from m in context.TabMenu where m.Id > 6 select m;
9 foreach (TabMenu menu in alinq)
10 {
11 Console.WriteLine(menu.Id + " ==> " + menu.MenuName);
12 }
13
14 Console.WriteLine( " \n " );
15 IList < TabMenu > list = context.TabMenu.Where(m => m.Id > 6 ).ToList < TabMenu > ();
16 foreach (TabMenu menu in list)
17 {
18 Console.WriteLine(menu.Id + " ==> " + menu.MenuName);
19 }
20 }
这个方法是ALinq 中的Where条件查询,这里的查询使用到了两种方式来过滤。第一个是直接使用Linq语句,后面还是用到了Lamda表达式进行过滤条件查询。 但是这两种方式查询到的的结果是一样的,.NET 3.0 之后对函数式编程的支持,使得程序更加简单明了。
3.ALinq 查询第一行数据
ALinq 查询第一行数据
1
///
<summary>
2 /// 查询集合第一行数据
3 /// </summary>
4 public void FunctionTop()
5 {
6 OA_DBDataContext context = new OA_DBDataContext( new SqlConnection(connectionString));
7 context.Log = Console.Out;
8 TabMenu menu = context.TabMenu.First();
9 Console.WriteLine(menu.Id + " ==> " + menu.MenuName);
10 Console.WriteLine( " \n " );
11
12 menu = context.TabMenu.First(m => m.Id > 6 );
13 Console.WriteLine(menu.Id + " ==> " + menu.MenuName);
14
15 menu = context.TabMenu.OrderBy(m => m.MenuCode).First();
16 Console.WriteLine(menu.Id + " ==> " + menu.MenuName);
17 }
2 /// 查询集合第一行数据
3 /// </summary>
4 public void FunctionTop()
5 {
6 OA_DBDataContext context = new OA_DBDataContext( new SqlConnection(connectionString));
7 context.Log = Console.Out;
8 TabMenu menu = context.TabMenu.First();
9 Console.WriteLine(menu.Id + " ==> " + menu.MenuName);
10 Console.WriteLine( " \n " );
11
12 menu = context.TabMenu.First(m => m.Id > 6 );
13 Console.WriteLine(menu.Id + " ==> " + menu.MenuName);
14
15 menu = context.TabMenu.OrderBy(m => m.MenuCode).First();
16 Console.WriteLine(menu.Id + " ==> " + menu.MenuName);
17 }
ALinq 和Linq to SQL 一样,也支持First 函数,用于查询数据行的第一行数据,等同于SQL Server 数据库中的Top 1 查询。当然在查询的过程还可以过滤一些条件,First 也可以和Where 一样添加一些查询条件。 在查询的时候,我们如果使用排序,那么查询的第一行数据也会不同。