我已经使用此 DAL 构建了一个可以检索数据的基本 DAL 和一个包含多个对象的业务层。一旦我将数据映射到业务对象并对其进行了处理,我还想将数据写回数据库。一些业务对象具有很多属性,因此不可能将业务对象的每个值作为参数传递给相应数据服务的方法。
我一直在想的其他方式:
将业务对象传递给相应的数据服务,在那里执行一个以所有值作为参数的 SP。 - 糟透了,因为我必须将一个业务对象传递给 DAL(违反分离)并且可能最终得到具有 >50 个参数的 SP
在业务对象中创建一个空 (?) 数据集,用业务对象的值填充它,将该数据集传递给数据服务并通过数据适配器更新数据库。我想用“... WHERE 0”-SQL 字符串创建一个空数据集。这是一个好的做法吗?
这是我第一次做这样的事情。后者对我来说听起来更好,但也许还有其他更好的方法?或者由于某些我不知道的原因,第一个更好?
非常感谢!
[edit:] 我不能使用 LinQ2SQL,因为我使用 C# Express(它只支持查询本地数据库,而我的是远程数据库)
最佳答案
将您的对象传递到您的 DAL。如果您手动编写 DAL 层,您的 DAL 层应该知道如何获取一个实体并将其保存到数据库,以及如何从数据库返回一个实体。 DAL 是关于您的实体在非 volatile 介质中的持久性。
关于c# - 从分层架构更新数据库 : best approach?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/701804/