【发布时间】:2011-01-23 19:43:37
【问题描述】:
我有一个问题,我觉得我没有找到令人满意的答案,或者我没有找到正确的地方。
我们的系统最初是使用 .NET 1.1 构建的(但是现在所有项目都支持 3.5),所有实体都使用存储过程和具有标准 ExecuteReader、ExecutreNonQuery 类型方法的“SQLHelper”持久保存到数据库中。
所以通常情况下,我们将拥有我们的实体,例如 User 和 Role,我们将拥有另一个名为 UserIO 的类,它使用以下方法将这些对象持久保存到数据库中:
static UserIO.SaveUser(User user)
单独的IO文件的原因是为了保持IO与实体分开但是仅仅调用不是更令人满意吗?:
User.Save()
也许我错了,但将这些“IO”文件分散在各处感觉不合适。所以我正在考虑寻找其他持久性选项,我想知道从哪里开始最好。我过去使用过数据集,但有一些复杂的经验,尤其是它们的性能。我知道 LINQ 现在已经存在,但我听说我应该使用 ADO.NET Entity Framework 而不是 LINQ,但后来有人告诉我 Entity Framework 不太正确,我应该等待 C# 4.0。如果是这种情况,并且 C# 4.0 即将到来,我是否应该继续我的“IO”文件方法,并在 C# 4.0 最终发布时从实体框架开始。或者是否有我可以使用的更优雅的类结构,例如使用部分类?
我应该说,我不打算完全替换已经存在的数据访问,我更关心我正在创建的新实体。
如果这个问题有点笼统,我很抱歉,但是我周围没有多少人可以反驳这种想法。
【问题讨论】:
标签: c# sql-server data-access-layer object-persistence