使用LINQ to SQL或Entity框架时,我们是否需要将应用程序分为3层?BLL,DAL,Interface?
答案 0 :(得分:4)
对你有用吗?建立一个拥有少量链接的婚礼网站,并从数据库中获取5个内容页面?超过1层看起来像是一种极大的矫枉过正。另一方面,对于一个非常复杂或大型的项目:我认为你至少需要一定程度的分离,因为它可以节省时间,混乱和理智。
重要的是你正在做什么以及它需要多少分工。最终,您和您的团队更喜欢。没有正确的答案,它符合这种情况。
答案 1 :(得分:2)
在我一直在开发的项目中,即使使用Linq2Sql进行数据访问,我也发现创建DL的价值。
我的主要原因是因为许多调用DL,从数据库中检索一个或多个业务对象,实际上需要多次调用数据库,尤其是在实现预先加载策略时。并且在保存其数据存储在多个表中的业务对象时,可以跨多个对数据库的调用建立事务。
业务层不需要知道;它应该能够对DL进行一次调用,并将其留给DL,以便对业务对象进行所有繁琐的数据查询和整理。
答案 2 :(得分:0)
我和@MikeJacobs在一起。
我实际上编写了一个LINQ2SQL库来抽象所有的DataContext内容,以及所有.Insert(),. Execute()和.SubmitChanges()。
把它抽象出来真是太好了。在LINQ2SQL中,你仍然依赖于知道LINQ2SQL实体的所有层,但是我的顶层很少将复杂的lambdas发送到DAL,其中大部分是在DAL中完成的。