【问题标题】:Sharing LINQ-to-SQL classes/models between multiple projects in a solution在解决方案中的多个项目之间共享 LINQ-to-SQL 类/模型
【发布时间】:2013-08-22 03:48:07
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案1】:

    我想您需要在项目之间共享数据库访问代码,而不是像它们一样的 linq-2-sql 类。

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

    我建议使用Repository Pattern

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        如果它们在同一个解决方案中,您可以在需要访问 Linq 类的项目中添加对 Linq 项目的引用。还是我误解了你的问题?为此,您可以右键单击需要访问 Linq 类的项目的“References”文件夹,选择“Projects”选项卡并选择 Linq-project。

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

        【讨论】:

          【解决方案4】:

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

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

          【讨论】:

            【解决方案5】:

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

            DAL 将封装它如何与数据库交互的细节(在本例中是使用 LINQ to SQL)并将它们隐藏在对应用程序有意义的定义良好的接口后面。

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

            【讨论】:

              猜你喜欢
              • 2018-11-03
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-02-21
              • 2016-10-07
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多