我现在在Visual Studio解决方案中有多个C#项目,它们都将使用相同的SQL Server数据库。
在项目之间共享LINQ-to-SQL类的正确方法是什么?
我正在考虑将dmbl
文件复制到每个项目中,但我认为这可能过于冗余。有没有更好的方法来解决这个问题?
答案 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对象(POCO),因此我没有看到将它们作为DAL界面的一部分直接公开的问题。