满足我需求的数据访问框架

时间:2012-08-02 19:05:58

标签: c# .net sql-server entity-framework linq-to-sql


我在选择合适的数据访问框架时遇到了麻烦,部分原因是因为我对我的偏好非常挑剔,主要是因为我对大多数人没有太多经验: - )

我需要一个允许我在数据库表(SQL Server)和我的实体之间轻松映射的框架,这将为我处理CRUD操作(大部分)。

  • 我希望我的实体驻留在与DAL不同的程序集中。
  • 我更喜欢使用XML等外部文件的映射属性。
  • 它不一定是ORM,我想自己编码我的实体。
  • 我不介意编写存储过程。
  • 项目的数据库不会很大。不到50张桌子。
  • 我希望我的一些实体对应两个表的内连接 - 一个用于在开发期间手动输入的静态数据,另一个用于在运行时填充数据 - 不使用两个相互引用的实体(结果为这个连接将是一个单一的实体。)
  • 实体框架听起来很完美,直到我意识到它不支持Enums(然而 - 我不能等待EF 5.0)。
  • 我希望这些实体包含枚举,并计划使用枚举的查找表和枚举的代码生成,以使其与数据库保持同步。
  • Linq-to-SQL似乎是一个很好的候选人,但我不知道它是否能很好地应对我以前的要求。
  • 使用Enterprise Library 5.0 DAAB和它的RowMapper,并扩展它执行更新和插入的能力也是一个选项(但我需要更多编码)。
  • 我计划实施存储库模式。
  • NHibernate怎么样?会吗?也没有经验。

我很乐意听到所有的建议......越多越好!提前谢谢!

1 个答案:

答案 0 :(得分:3)

我认为nHibernate是要走的路,虽然它的一些主要优势(ORM,存储过程生成等)是你列为非要求的东西。无论如何,nHibernate会做你想做的一切。从技术上讲,它确实使用xml映射,但可以使用流畅的属性映射轻松地自动生成这些映射。我喜欢这个,因为它是为你完成的,但你也得到了定制,以防你需要它。祝你好运!