在传统的三层中,我们可以利用比如工厂模式在数据层实现多数据库扩展支持但是如果采用Linq,比如Linq To SQL,那么Linq实体将贯穿表面层,业务逻辑层,数据层如果我想进行数据库移植的话,Linq实体必然是要随之改变的我在MSDN杂志上曾经看到过一篇,在表面层和业务层中加一个服务层来实现实体层的隔离,但是看的也不太明白目前是否有比较好的解决方案?希望高人指点!
在传统的三层中,我们可以利用比如工厂模式在数据层实现多数据库扩展支持但是如果采用Linq,比如Linq To SQL,那么Linq实体将贯穿表面层,业务逻辑层,数据层如果我想进行数据库移植的话,Linq实体必然是要随之改变的我在MSDN杂志上曾经看到过一篇,在表面层和业务层中加一个服务层来实现实体层的隔离,但是看的也不太明白目前是否有比较好的解决方案?希望高人指点!
Linq中并没有实体这种东西,它是Linq to SQL中的,所以结论很明白,你说Linq贯穿业务逻辑层没有问题,说Linq to SQL贯穿业务逻辑层就有问题了,这就意味只你的业务逻辑成就只能用于Linq to SQL所支持的数据库。
DataSet 数据集(LINQ to Dataset)
XML文档 (LINQ to XML)
实体对象 (LINK to Entities)
http://www.cnblogs.com/entlibforum/articles/1236715.html
对,是Linq To SQL 实体,Linq是不会出现在逻辑层和表现层的是Linq2Sql实体贯穿三层,比如业务逻辑层有这样的方法
Function GetAllList as List(Of User_Table)
那么User_Table就是一个Linq2Sql实体,我就必须在业务逻辑层引用实体类同样在表面层也必须要引用了可以在逻辑上实现不引用吗
唉,在基本逻辑上总是满拧的,如果你使用Linq to SQL来实现业务逻辑,就是在使用Linq来实现。而反之并不成立。如果你缺乏逻辑训练,又怎么来深入学习技术呢?!
你讲的这个我看懂了,但是还不是太透彻,我待会儿再研究一下然后你看了我给你的那个链接没
http://msdn.microsoft.com/zh-cn/magazine/cc700340.aspx 这个貌似也有点意思,但是我不能很看明白,你能给我介绍一下这个文章想要表达和实现的是什么吗我感觉和我的想法很接近~
在业务里是没有LINQ的,我的想法应该是在数据里实现Linq to SQL,这样应该是合理的吧