Linq to sql 更新数据库.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
使用LINQ to SQL建模Northwind数据库 在这之前一起学过LINQ to SQL设计器的使用,下面就使用如下的数据模型: 当使用LINQ to SQL设计器设计以上定义的五个类(Product,Category,Customer,Order和OrderDetail)的时候,每个类中的属性都映射了相应数据库中表的列,每个类的实例则代表了数据库表中的一条记录。另外,当定义数据模型时,LINQ to SQL设计器同样会创建一个自定义DataContext类,来作为数据库查询和应用更新/变化的主要渠道。以上数据模型中定义的DataContext类命名为“NorthwindDataContext”。该类中包含了代表每个建模数据库表的属性。 使用LINQ语法表达式可以十分简单的使用NorthwindDataContext类来查询和检索数据库中的数据。LINQ to SQL会在运行时自动的转换LINQ表达式到适当的SQL代码来执行。例如,编写以下LINQ表达式来根据Product Name检索单个Product对象: 还可以使用LINQ表达式来检索所有不存在于Order Details中的,并且UnitPrice大于100的所以Product: 变化跟踪和DataContext.SubmitChanges() 当执行查询和检索像Product实例这样的对象时,LINQ to SQL会自动保持对这些对象任何变化或更新的跟踪。我们可以进行任意次数的查询,以及使用LINQ to SQL的DataContext类作出更新,而这些变化都会被全部跟踪。 注意:LINQ to SQL的变化跟踪发生于调用者端——而不是在数据库中。这就意味着使用跟踪不会销耗任何数据库资源,也不需要在数据库中改变/安装任何组件模块。 当对从LINQ to SQL中检索的对象作出更改之后,我们可以选择调用DataContext上的SubmitChange()方法来应用变化返回到数据库。这将会导致LINQ to SQL动态计算并执行适当的SQL代码来更新数据库。例如,编写以下代码更新数据库中Product Name为“Chai”的Product上的UnitPrice和UnitsInStock: 当在以上代码中调用northwind.SubmitChanges()方法时,LINQ to SQL会动态构建并执行一个更新这两个Product属性值的SQL“UPDATE”代码模块。 在下面代码中我们来遍历不流行的,昂贵的Product,并把它们的ReorderLevel属性设为0: 当在以上代码中调用northwind.SubmitChanges()方法时,LINQ to SQL会计算并执行一组适当的UPDATE代码模块来修改RecorderLevel属性已变化的Product。 注意,如果一个Product的属性没有通过属性指定而发生变化,则该对象不会被认为是发生变化的,并且LINQ to SQL也不会对于该对象执行更新回数据库的操作。例如,如果“Chai”对象的UnitPrice仍旧是$2,UnitsInStock仍旧是4,当调用SubmitChange()时不会导致任何数据库UPDATE代码模块的执行。相似的,在第二个例子中的那些符合条件的Product中只有RecorderLevel原来不是0的才会在SubmitChange()被调用时更新。 插入和删除示例 除了更新数据库中已存在的行之外,LINQ to SQL同样支持插入和删除数据。可以通过从DataContext的表集合中添加/移除数据对象,并调用SubmitChange()方法来实现数据库中的插入和删除操作。LINQ to SQL也会对添加/移除操作保持跟踪,并当SubmitChange()被调用时自动执行适当的SQL中的INSERT或DELETE代码模块。 插入Product 可以通过创建一个新Product实例添加一个新的Product到数据库,设置它的属性,并添加它到DataContext类中的Product集合中: 当在以上代码中调用northwind.SubmitChanges()方法时,在数据库的Product表中会有一条新的记录被创建。 删除Product 与添加相似,可以通过从DataContext类中的Product集合中移除某一产品来表达想要从数据库中删除相应的记录: 在以上代码中先使用LINQ查询检索一系列不会被订购的Product,然后将其传入DataContext类中Product集合上的RemoveAll()方法。当在以上代码中调用northwind.SubmitChanges()方法时,这些Product记录就会从数据库中的Product表中删除。 通过关系关联更新 像LINQ

文档评论(0)

书房 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档