除了dbml文件之外,还可以使用DAL做什么

时间:2011-03-19 06:48:43

标签: c# .net winforms linq-to-sql data-access-layer

注意:我不是专家,所以如果你觉得这个问题愚蠢/蹩脚,请原谅并关注你的事业。 :)

好的,正如所有视频教程所述,创建一个LinqToSqlClasses项(dbml)文件。拖动表,我们在这里完成。

但就我而言(或者可能在所有现实场景中),我们的数据访问层需要的不仅仅是自动生成的类,对吗?

例如:在一个简单的会计软件中:我有一个账户表和一个AccountingTransactions表,

现在要获得任何帐户的分类帐,我们需要编写一个相当冗长的SQL查询,同样适用于试算平衡,日记本和单一凭证等。​​

我们可以在DAL中做些什么来优化这些查询以获得最佳性能。

1 个答案:

答案 0 :(得分:1)

我建议使用Entity Framework而不是Linq to SQL。

但在这两种情况下,您都可以使用Linq的强大功能进行此类查询。另外,这为您提供了更好的设计支持(intellisense,强类型,编译时检查)

EF或LinqToSQL成为较低级别的DAL,除此之外,您将使用存储库模式以松散耦合的方式调用数据对象。您还可以为某些存储库添加特殊方法,以便在需要封装时以特定方式查询数据。

您应该使用Entity Framework或LinqToSql在SO中搜索存储库模式,您将找到几个实现。

看到这个答案: Advantage of creating a generic repository vs. specific repository for each object?