日期:2014-05-18  浏览次数:20773 次

关于一年前的我的一个关于linqtoaccess的帖子。。@caozhy大神来看
将近一年前,我发了个帖子:
开他娘的源!自己写的LinqToAccess!!!
现在看来真是惭愧,可笑,最近一年,技术方面学习的不多,对linq的看法有所进度,但是对于大神们当时的一些评论还是看不大懂,希望各位大神再点播一二。

在我看来,linq甭管是to什么,都只不过是对LinqtoObject的一个延伸:
将各种其他的数据库,Xml,或者其他的形式转化为Object,再用linq的方式来对Object做操作,(微软基本上已经用IEnumerable<out T>接口和扩展方法都搞定了linqtoObject),然后再实现当Object改变之后,下面数据库或者XML的改变(不知道各位大神是否同意我的看法?)

所以我当时的linq2access其实就是实现了access到实体类的和转化,和对实体类执行增删查改之后,再反应到Access的变化。
我从实体类到Access的变化确实挺原始的,但是本身Access也不是什么数据库,真的在这方面有要求,也就不用Access了。

linq2Sql在这方面我大概看了看:
个人认为从实体类到sql数据库的变化中,
System.Data.Linq.Table<TEntity> : IQueryProvider, ITable, IListSource, ITable<TEntity>, IQueryable<TEntity>, IEnumerable<TEntity>, IQueryable, IEnumerable where TEntity : class
精华就在这个类中了。这个Table<TEntity>类实现了诸多接口,而这些接口中的各个方法实现了实体类到Sql表。

caozhy大神当时说的这些:“从技术上来说,lz的方案还非常原始,甚至都不能算LinqToAccess。我们说LinqToSQL,它的核心在于,将IQueryable 接口在幕后转换为SQL查询。并且智能地处理了SQL函数<-.NET函数的转化,Lambda表达式,表达式树等等。这个Provider是Linq2SQL的精髓。”
关于IQueryable接口定义,里面是空的。我不清楚这个空接口的含义?还有IQueryProvider, ITable, IListSource, ITable<TEntity>, IQueryable<TEntity>, IEnumerable<TEntity>, IQueryable, IEnumerable where TEntity等诸多接口各自的具体含义。

是不是说,如果当时我把实体类到Access的变化的方法不用自己的原始方式实现(像:a.Insert_y(nta);a.Delete_y(dta);),而是继承某个特定接口,(IQueryable?)在接口的方法里面实现,就更好一些了?

------解决方案--------------------
Tim赶紧过来看一下,我是来帮你喊人的...
------解决方案--------------------
http://topic.csdn.net/u/20110425/21/1138a99c-ea32-46b2-af2d-c3d357ea1f29.html