我看过几个类似的问题,但我没有看到任何直接适用于我的问题,所以请原谅我,如果这是重复的话。

为了分离关注点,我试图以某种方式将我的业务对象与逻辑映射到.dbml文件中的LINQ to SQL数据对象(对于这个btw来说相当新)。它的外观虽然是我的业务对象需要知道相应的LINQ2SQL对象。我读了这篇文章关于尝试通过使用xml映射文件来使用POCO,它似乎与我想要的类似,除了我没有从表到类的一对一映射因为我需要创建一个额外的表来实现多对多关系。

我可以很好地将数据访问封装在我的业务逻辑中,这样使用我的业务对象的代码就不需要了解有关数据库的任何信息,但是业务层仍然与数据访问紧密耦合层,这样我就无法在不更改业务层对象或为不同数据提供者创建新业务层(实现相同接口)的情况下交换DAL。

如何解耦这些图层?

有帮助吗?

解决方案

不确定您是否以某种方式与LINQ to SQL绑定,但您要完成的工作几乎是NHibernate中的默认设置。我建议看看NHibernate,看看它是否比LINQ to SQL更容易切换。

我发现打击工具几乎总是一个坏主意。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top