linq to mysql 查询_LINQ to SQL 查询数据库和使用存储过程

如下列出查询表达式,常用操作符,与SQL语句对应。

e99c2655139ddea18c71e3583a036d9b.png

where  关键字的使用 public voidMyWhere()

{

NorthwindDataContextdc = newNorthwindDataContext();

//查询产品名称以L开头的记录varquery = fromp indc.Products

wherep.ProductName.StartsWith("L")

selectp;

//两个where过滤两个条件,第二个where会在第一个where基础上进行第二次条件谓词varquery1 = fromp indc.Products

wherep.ProductName.StartsWith("L")

wherep.ProductName.EndsWith("i")

selectp;

foreach(Productsitem inquery1)

{

Response.Write(item.ProductID + " | "+ item.ProductName + "
");

}

}

join 连接操作

拖动数据库的Orders表到设计器中来,结果如下

5189029b0aff4660c8e093138306c679.png

设计器会根据表在数据库中设定的依赖关系,生成表对象之间的依赖关系,查看表关系,可以打开SQL Server 管理器,打开数据库右键点击表,选择查看依赖关系。

23aa180867461c75eb7fb2eeff0464a5.png

可以看到Order依赖Customer

a14d26ff2b9ac7269247d00250930901.png

如果你想给表添加或者管理一个FK的话可以看下图,如果想添加就右击、键目录、添加键,如下图

33224c28a6c708a43df828ceabf33778.png

再点击表和列规范后面的按钮

97e94dfb73a307de44d47b97f16d3635.png

选择主表和列对应本表那个列(外键)确定,点保存,刷新一下就可以看到了

代码:

public voidMyJoin()

{

// PERFORMING JOINSNorthwindDataContextdc = newNorthwindDataContext();

dc.Log = Console.Out;

varquery = fromc indc.Customers

joino indc.Orders onc.CustomerID equalso.CustomerID

orderbyc.CustomerID

select new{

c.CustomerID,

c.CompanyName,

c.Country,

o.OrderID,

o.OrderDate

};

foreach(varitem inquery)

{

Response.Write(item.CustomerID + " | "+ item.CompanyName

+ " | "+ item.Country + " | "+ item.OrderID

+ " | "+ item.OrderDate + "
");

}

}

组合数据项Group

拖动Categories 表到设计器,如下图

03bd2e2b22eb6122c7b6587f051ca401.png

代码如下:

public voidMyGroup()

{

NorthwindDataContextdc = newNorthwindDataContext();

varquery = fromp indc.Products //from谓词orderbyp.Categories.CategoryName ascending//排序groupp byp.Categories.CategoryName intog //以名字进行分组,导入到新的集合,Key是分组的CategoryName当前名,Value 是分组的Products对象select new{ Categories = g.Key, Products = g }; //建立一个匿名对象,分别,将Key,和Value放进去foreach(varitem inquery)

{

Response.Write("分组Key,CategoryName:"+ item.Categories + "
");

foreach(varinnerItem initem.Products)

{

Response.Write( innerItem.ProductName + "
");

}

Response.Write("

}

}

LINQ 调用存储过程

设计器的右侧是用来显示和定义存储过程的地方,可以把存储过程拖进来,在使用的时候会变成LINQ语法DataContext对象中的一个方法

6664018c7d520bf4428e37cbbd99d5f0.png

代码如下:

public voidMyProcedure()

{

NorthwindDataContextdc = newNorthwindDataContext();

//ISingleResult< Ten_Most_Expensive_Products_个结果 > result = dc.Ten_Most_Expensive_Products(); //单个返回序列结果

//返回结果类型和怪,出现了中文,这是我直接拖动自动生成的,我们可以替换,这个_个结果在Northwind.designer.cs 文件中ISingleResult result = dc.Ten_Most_Expensive_Products();

foreach(varitem inresult)

{

Response.Write(item.TenMostExpensiveProducts + " | "+ item.UnitPrice + "
");

// 属性名称,对应 存储过程中的 结果列名称,SELECT Products.ProductName AS TenMostExpensiveProducts, Products.UnitPrice}

}

替换方法:

baaafe6fa3f7e7e974f8be2062256567.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值