我已经使用.NET 2进行Web编程多年了(由于我们对我们正在使用的服务器上的任何其他内容提供的支持有限),但最近开始考虑将.NET 4用于一些新的项目
作为其中的一部分,我一直在努力学习如何使用Microsoft Entity Framework / Linq to SQL。它似乎使得基础知识变得非常简单,您可以立即将完整功能的课程组合在一起。但是,现在我开始进一步推动它,我发现了一些我不确定如何解决的问题。
困扰我的一件事是,我不明白如何组织事情。显然,我习惯于在命名空间中保留相关的类,通常这些命名空间反映了数据库的布局(例如,命名空间映射到表名前缀)。但是,使用EF,似乎我的每个类都必须位于同一名称空间中。我当然可以在单独的命名空间中有几个数据上下文,但是后来我失去了EF提供的优势,因为类不再有任何关系。我可以忍受这个,但我觉得我一定会错过什么?
我得到的另一个让我烦恼的问题是我习惯于构建自包含的模块化类,我不明白EF如何实现这一点。例如,我无法弄清楚如何编写一个简单的Save函数,因为如果你调用db.SaveChanges()然后保存对整个数据库的更改 - 如果你正在调用mySingleObject.Save()那么这不会这似乎是一件令人向往的事情,因为它还可以保存您碰巧遇到的任何其他对象的更改。鉴于我正在将这个功能构建到类库中,不得不从类库外部调用db.SaveChanges()似乎也很疯狂,因为我的类库之外的任何东西都不需要知道我的数据是如何存储的。
我是否忽略了这一点,还是我需要改变自己的思维方式?
目前我正在努力推进我的项目,因为这些问题,我正在考虑回到普通的旧SQL。这将是一个耻辱,因为EF显然有一些巨大的优势,我想充分利用它!