Linq to sql 业务逻辑对象是否应该了解其LINQ到SQL数据对象?

Linq to sql 业务逻辑对象是否应该了解其LINQ到SQL数据对象?,linq-to-sql,orm,separation-of-concerns,decoupling,Linq To Sql,Orm,Separation Of Concerns,Decoupling,我看过几个类似的问题,但我没有看到任何直接适用于我的,所以请原谅我,如果这是重复的 对于关注点的分离,我试图以某种方式将我的业务对象与逻辑映射到.dbml文件中的LINQ to SQL数据对象(对这个btw来说是相当新的)。不过,看起来我的业务对象需要了解相应的LINQ2SQL对象。我读过关于使用xml映射文件尝试使用POCOs的文章,这似乎与我想要的类似,只是我没有从表到类的一对一映射,因为我需要为多对多关系创建一个额外的表 我可以很好地将数据访问封装在我的业务逻辑中,这样使用我的业务对象的代

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

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

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


如何解耦这些层?

不确定您是否以某种方式绑定到LINQ到SQL,但您试图完成的几乎是NHibernate中的默认设置。我建议看看NHibernate,看看切换是否比将LINQ转换为SQL更容易

我发现与一个工具搏斗几乎总是一个坏主意