我看过几个类似的问题,但没有看到任何直接适用于我的问题,所以如果这是重复的,请原谅我。
为了分离关注点,我试图以某种方式将我的业务对象与逻辑映射到 .dbml 文件中的 LINQ to SQL 数据对象(这对这个 btw 来说是相当新的)。不过看起来我的业务对象需要了解相应的 LINQ2SQL 对象。我阅读了这篇关于尝试通过使用 xml 映射文件来使用 POCO 的文章,这似乎与我想要的相似,只是我没有从表到类的一对一映射,因为有很多我需要为其创建一个额外的表的多对多关系。
我可以很好地将数据访问封装在我的业务逻辑中,这样使用我的业务对象的代码不需要知道任何关于数据库的信息,这很好,但是业务层仍然与数据访问层紧密耦合,这样如果不更改我的业务层对象或为不同的数据提供者创建新的对象(实现相同的接口),我就无法更换 DAL。
我怎样才能解耦这些层?