在解决方案中的多个项目之间共享LINQ-to-SQL类/模型

时间:2010-05-25 19:59:27

标签: c# visual-studio linq-to-sql projects-and-solutions

我现在在Visual Studio解决方案中有多个C#项目,它们都将使用相同的SQL Server数据库。

在项目之间共享LINQ-to-SQL类的正确方法是什么?

我正在考虑将dmbl文件复制到每个项目中,但我认为这可能过于冗余。有没有更好的方法来解决这个问题?

5 个答案:

答案 0 :(得分:4)

我想你需要在项目之间共享数据库访问代码而不是linq-2-sql类。

构建数据访问库( DAL 通过数据库公开操作,这些操作通过linq-2-sql类实现,而不是公开类。

我建议使用Repository Pattern

从您想要的项目中引用DAL库。

答案 1 :(得分:2)

您可以:将其构建为类库并包含它。这只是一个班级,对吧。

答案 2 :(得分:2)

如果它们在同一个解决方案中,您可以在需要访问Linq类的项目中添加对Linq项目的引用。或者我误解了你的问题?您可以通过右键单击需要访问Linq类的项目的“References”文件夹来执行此操作,选择“Projects”选项卡并选择Linq项目。

如果您是严格的数据访问,请遵循Andrew Florko的建议并构建数据访问层以获取所需的数据。

答案 3 :(得分:0)

您需要做的是创建一个包含DBML类的类库。然后将其添加为对其他项目的引用。确保除了与​​数据库相关的代码之外,该类库中没有任何内容,因此可以很容易地添加到将来的项目中。

然后执行Andrew Florko建议并阅读数据访问模式。存储库很好,但我喜欢DAO

答案 4 :(得分:0)

我不仅将Model类,而且将整个数据访问层(DAL)分离到您从应用程序的其他部分引用的单独程序集中。

DAL将封装它与数据库交互的详细信息(在本例中为LINQ to SQL的使用),并将它们隐藏在对应用程序有意义的定义良好的接口之后。

此外,由于从LINQ to SQL DBML文件生成的类只是普通的旧CLR对象(PO​​CO),因此我没有看到将它们作为DAL界面的一部分直接公开的问题。