c# - 从分层架构更新数据库 : best approach?

标签 c# database data-access-layer

我已经使用此 DAL 构建了一个可以检索数据的基本 DAL 和一个包含多个对象的业务层。一旦我将数据映射到业务对象并对其进行了处理,我还想将数据写回数据库。一些业务对象具有很多属性,因此不可能将业务对象的每个值作为参数传递给相应数据服务的方法。

我一直在想的其他方式:

  1. 将业务对象传递给相应的数据服务,在那里执行一个以所有值作为参数的 SP。 - 糟透了,因为我必须将一个业务对象传递给 DAL(违反分离)并且可能最终得到具有 >50 个参数的 SP

  2. 在业务对象中创建一个空 (?) 数据集,用业务对象的值填充它,将该数据集传递给数据服务并通过数据适配器更新数据库。我想用“... WHERE 0”-SQL 字符串创建一个空数据集。这是一个好的做法吗?

这是我第一次做这样的事情。后者对我来说听起来更好,但也许还有其他更好的方法?或者由于某些我不知道的原因,第一个更好?

非常感谢!

[edit:] 我不能使用 LinQ2SQL,因为我使用 C# Express(它只支持查询本地数据库,而我的是远程数据库)

最佳答案

将您的对象传递到您的 DAL。如果您手动编写 DAL 层,您的 DAL 层应该知道如何获取一个实体并将其保存到数据库,以及如何从数据库返回一个实体。 DAL 是关于您的实体在非 volatile 介质中的持久性。

关于c# - 从分层架构更新数据库 : best approach?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/701804/

相关文章:

c# - 如何获取主键

c# - Sharepoint aspx 页面的代码隐藏在哪里?

javascript - 我怎样才能使我的登录 session 更快?

database - Rebol 的 PostgreSQL 驱动程序?

c# - 在 DAL 中处理数据库连接的最佳方法 - 创建还是传递?

具有许多参数的 C# 数据访问 GetAll() 方法

python - 转换 MySQL 查询以在 web2py DAL 中使用

c# - 如何在奇数页和偶数页的文档中添加页脚

sql-server - 我如何将命令传递给 sqsh 并一次性将输出输出到文件?

php - 有没有办法使用更少的 "mysql_num_rows"函数并达到相同的结果?