MrE*_*ndo 11 c# sql-server data-access-layer object-persistence
我有一个问题,我觉得我没有找到一个满意的答案,或者我没有找到正确的地方.
我们的系统最初是使用.NET 1.1构建的(但是项目现在都支持3.5),并且所有实体都使用存储过程和具有标准ExecuteReader,ExecutreNonQuery类型方法的"SQLHelper"持久保存到数据库.
所以通常情况下我们将拥有我们的实体,例如User和Role,我们将有另一个名为UserIO的类,它使用以下方法将这些对象持久化到数据库:
static UserIO.SaveUser(User user)
Run Code Online (Sandbox Code Playgroud)
单独的IO文件的原因是为了使IO与实体分开,但是仅仅调用它会更令人满意吗?:
User.Save()
Run Code Online (Sandbox Code Playgroud)
也许我错了,但是让这些"IO"文件遍布整个地方感觉不对.所以我正在考虑寻找持久性的其他选择,我想知道哪里是最好的起点.我过去曾使用过数据集,但有一些混合经验,特别是它们的表现.我知道LINQ现在已经存在但是我听说我不应该使用LINO我应该使用ADO.NET实体框架但是其他人告诉我实体框架不太正确我应该等待C#4.0.如果是这种情况,并且C#4.0即将到来,我应该继续使用我的"IO"文件方法,并在C#4.0最终发布时从实体框架开始.或者是否可以使用更优雅的类结构,例如使用Partial Classes?
我应该说,我不是要完全取代已经存在的数据访问,我更关心我正在创建的新实体.
如果这个问题有点普遍,我很抱歉,但是我没有很多人来反复这种想法.
我已经成功使用Entity Framework 3.5。有些人(我将其称为纯粹主义者)认为实体框架违反了某些规则,因此不应使用。
在我看来,唯一重要的规则是你自己的规则。我建议您开始尝试使用 Entity Framework 3.5,因为您现在已经拥有它了。此外,您(以及几乎其他所有人)都需要尽快开始尝试 .NET 4.0。候选版本是免费提供的,因此没有理由不至少知道有哪些可用的内容。
您可能会发现自己非常喜欢 4.0 中的 EF 更改,以至于想要等待它。您很可能不需要等待,可以像 3.5 中一样继续使用 EF 并从中受益。我已经,我很高兴我没有等待。