3层最佳实践 - 表示层中的Linq TO SQL访问

时间:2010-11-05 07:24:51

标签: linq-to-sql 3-tier

方案: 我有一个带有表示层(ASP.NET),业务逻辑层(dll)和数据层(dll)的场景,后者有一个LinqTOSQL DataContext文件(dbml),它保存特定数据库的表和存储过程。项目之间的联系是:

依赖关系: 业务逻辑层具有数据层的参考 表示层具有业务逻辑层的参考

我的问题: 问题是我有需要返回对应于datacontext的表类型的对象的情况,但由于表示层没有对数据层的引用我不能使用表对象...是吗在Presentation Layer中直接引用数据层的好习惯?或者有人可以指导我如何从表示层实现表格

1 个答案:

答案 0 :(得分:0)

不要让业务逻辑层向表示层返回 System.Data.Linq.Table<TEntity> ,而是让它通过隐式强制转换返回 System.Collections.Generic.IEnumerable<TEntity> ,或者 System.Collections.Generic.IList<TEntity> ,通过调用表格中的ToList()

听起来dbml文件中定义的对象已经在您的域命名空间中,因此您不必在表示层中引用System.Data.Linq