Linq To Sql 项目从Beta迁移到RTM注意事项

问题描述

LinqToSql项目从Beta迁移到RTM要注意那些事项呢?RTM相对beta又做了那些变动呢?本文为你揭开这些问题。这里,我们只谈项目中经常碰到的,其他的略去不写。你若是有疑问,可以回贴问,我再帮你找。最后,放出修正文档。特别感谢伍迷TX的督促。1,函数名称的改变在添加,更新和删除实体对象时,本blog中的LinqToSql进阶系列(三)CUD和Log一文中所提及的,其函数名更改如下。Beta2NameRTMNameAddInsertOnSubmitAddAllInsertAllOnSubmitRemoveDeleteOnSubmitRemoveAllDeleteAllOnSubmit还有其他函数名称的改变,但是,好像本blog从来都没有提过,所以,不做太多说明。WehavealsochangedthemembersofChangeSettomatchthesenewnames:Beta2NameRTMNameAddedEntitiesInsertsRemovedEntitiesDeletesModifiedEntitiesUpdates2,dbml编码以前是16,现在是8。因为这个也可能让你的程序编译不过。<?xmlversion="1.0"encoding="utf-8"?>3,一个叫DataSetExtensions的Assembly去掉这个好像只在asp.net的程序里才会有这个问题,在你的web.config里,如果有这个问题,去掉这段。这个assembly早就没有了。<addassembly="System.Data.DataSetExtensions,Version=2.0.0.0,Culture=neutral,PublicKeyToken=B77A5C561934E089"/>4,Attach函数的改变Attach函数用来在不同的datacontext间,传递实体对象。现在这里做了更改。Thesolutionisadddb.DeferredLoadingEnabled=false;tothecodetovoiddeferredloadinginthefirstdatacontext.Customerc=null;Using(DataContextdb1=newDataContext()){db1.DeferredLoadingEnabled=false;c=db1.Customers.First();}Using(DataContextdb2=newDataContext()){db2.Customers.Attach(c);….dosomething…}5,查询语法中不允许再显示构造实体对象比如,在beta2中,你可以这么玩,varq=fromcindb.CustomerswhereCountry=="USA"selectnewCustomer{Name=c.Name,City=c.City};现在,这么玩就会在run-time时抛异常。这个地方的修改是因为一个bug引起的。在beta2中,下面的代码varq=fromcindb.CustomersselectnewCustomer{City=c.City};foreach(variteminq){Console.WriteLine(item.City);}你得到的结果全是Aachen,虽然结果数目是对了,但是全是第一条纪录的值.如果换做匿名类varq=fromcindb.Customersselectnew{City=c.City};foreach(variteminq){Console.WriteLine(item.City);}则结果又正确了。为了修复这个问题,在查询语句中,显示构造实体对象将抛异常。如果在查询语句中,显示构造的对象不是实体类的话,即没有table属性,那么又不会有异常。这里只所以会做这样的变动是考虑了更新的问题,如果,你显示构造实体对象时,不选主键,而你又要求更新,linqtosql怎么帮你做呢?我稍候提供的文档将解释的很详细,不多言。6,delete时的改变在beta2中,如果,你移除从某一表中移除一个实体对象,你须手动从该实体对象的EntitySets移除实体,并遵从1:1的关系。(beta2被我卸了,我也不记得DineshKulkarni说是什么情况了。)7,vb中String=NothingandString<>Nothingfixes这个就是“随风流月”提到的bug,现在修复了。8,ORDesinger的改变首先,在beta2中,在手工编辑dbml产生的代码中,常丢失datacontext类的不带参数的构造函数,这个bug已经修复了。然后,dbml文件中也不再保存数据库的密码。9,xml类型的映射beta2中,影射为XDocuments,现在更改为XElement转自:http://www.cnblogs.com/126/archive/2007/11/28/976006.html

解决方案

解决方案二:
该回复于2008-01-28 11:09:24被版主删除
解决方案三:
学习!
解决方案四:
顶活到老,学到死......

时间: 2024-11-06 03:34:37

Linq To Sql 项目从Beta迁移到RTM注意事项的相关文章

艾伟:如何在ASP.NET项目里面正确使用Linq to Sql

老久不上来写技术类的东西了,偶尔回归一下吧.(其实,这篇文章8个月前写了个大半,后来一直没有时间去完善,再后来就因为各种原因给放下来了.) Linq to Sql 用的人也应该有些吧,我在cnblogs上面看老赵写的那几篇文章(请看08年9月左右的文章),感觉也很有深度,有不少启发.因此我也打算写一点我自己的实践经验,希望也能同样给大家一些有用的启发吧. 我首先想要问一下大家,Linq to Sql有哪些很特别的地方?这个问题的答案肯定五花八门,我说一下我看到的一些问题吧. 首先,Linq to

如何在ASP.NET项目里面正确使用Linq to Sql

非常抱歉,由于需要发表其他文章的缘故,我只能忍着不修正文中一小部分错误,以及增加一些有助免于误解的内容.这里特别说明一下,本文不是要讨论缓存机制的好坏,更不是要讨论如何缓存对象.而是说DAL/BLL上面对DataContext的处理.另外一个需要注意的地方,是修改了一个错误,原来大部分都写成IQueryable了,实际上应该是除了最后一个之外,都是IEnumerable.原因是什么需要大家想一下.此外,也需要大家注意的事,我所提出来的缓存,并不是直接利用Linq2Sql的代码来缓存,而是指是否便

Linq to SQL对象的增删改

你的程序里,是否到处充斥着这种代码: db.Customers.InsertOnSubmit(customer); db.SubmitChange(); 如果某一天,因为 Customers 表的数据库巨增,需要把它拆成两个表,你是否会胆寒???当然,对于查询,我们可以通过视图来解决.对于插入,或者更新呢?据说,现在的数据库在某些情况下,可以对视图进行数据的更新.插入.但是我们要考虑的是不可以的情况.是不是得每个地方都改呀?对于一个大型的项目,这种改动是很可怕的,某个地方少改了,就糟糕了.不过,

学Linq to sql(十):分层构架的例子

项目介绍 这节将要把<学Linq to sql (三):增删改>中留言簿的例子修改为使用WCF的多层构架.我们将会建立以下项目: l A,网站项目 WebSite:留言簿表现层 l B,类库项目 Contract:定义数据访问服务的契约 l C,类库项目 Service:定义数据访问服务 l D,类库项目Entity:留言簿实体 l E,控制台项目Host:承载数据访问服务 项目之间的引用如下: l A引用B和D: l B引用D和System.ServiceModel程序集 l C引用B.D.

学Linq to sql(三):增、删、改

示例数据库 字段名 字段类型 允许空 字段说明 ID uniqueidentifier   表主键字段 UserName varchar(50)   留言用户名 PostTime datetime   留言时间 Message varchar(400) √ 留言内容 IsReplied bit   留言是否回复 Reply varchar(400) √ 留言管理员回复 在数据库中创建一个名为GuestBook的数据库,在里面创建一个tbGuestBook的表,结构如上表. 生成实体类 右键点击网

在LINQ to SQL中使用Translate方法以及修改查询用SQL

目前LINQ to SQL的资料不多--老赵的意思是,目前能找到的资 料都难以摆脱"官方用法"的"阴影".LINQ to SQL最 权威的资料自然是MSDN,但是MSDN中的文档说明和实例总是显得"大开大 阖",依旧有清晰的"官方"烙印--这简直是一 定的.不过从按照过往的经验,在某些时候如果不按照微软划定的道道来走,可 能就会发现别样的风景.老赵在最近的项目中使用了LINQ to SQL作为数据层的基础,在LINQ to S

扩展LINQ to SQL

ORM框架在删除数据方面一直有个尴尬,那就是无法通过指定条件批量删除数 据(当然这本不是ORM的问题,只是使用上感觉不方便).于是对于一些删除操 作,我们不得不写SQL语句或者执行存储过程,例如: ItemDataContext db = new ItemDataContext(); db.ExecuteCommand( "DELETE FROM Item WHERE [CreateTime] < {0}", DateTime.UtcNow.AddMonths(-1)); 我始终

ADO.NET与ORM的比较(3) Linq to SQL实现CRUD

说明:个人感觉在Java领域大型开发都离不了ORM的身影,所谓的SSH就是 Spring+Struts+Hibernate,除了在学习基础知识的时候被告知可以使用JDBC操 作数据库之外,大量的书籍中都是讲述使用Hibernate这个ORM工具来操作数据. 在.NET中操作数据库的方式有多种,除了最直接的方式就是使用ADO.NET之外, 还可以使用NHibernate这个Hibernate在.NET中的实现ORM,如果你对第三方的 ORM 持怀疑态度,你还可以使用来自微软的实现.根正苗红的Lin

论道Windows Phone(四) LINQ to SQL的查询

有一天,一个读者给我发邮件,问我是否有兴趣做一个翻译应用,根据<美食译苑--中文菜单英文译法>把中文菜名译成英文菜名,因 为他经常和老外吃饭,所以希望他的WP手机上能有一个这样的应用,而我们则正好借此机会探索LINQ to SQL的查询以及相关的优化技巧. 使用现有的数据库 Windows Phone 7.5新增了对SQL Server CE数据库的支持,但Visual Studio 2010没有为Windows Phone的 项目提供数据库的工具支持,比如表的设计和实体类的生成等,另外,数据