C# 当DBMS类型在构建时未知时,我可以使用实体框架吗?

C# 当DBMS类型在构建时未知时,我可以使用实体框架吗?,c#,.net,sql-server,oracle,entity-framework,C#,.net,Sql Server,Oracle,Entity Framework,我正在开发一个应用程序(CRUD WS),它连接到一个数据库,可以是Oracle或SQL server,类型是从配置文件读取的。我可以使用EF来实现DAL吗?一些要求: 这些表没有主键,我无法添加它们 C#/.NET 4.0 所有操作都已完成并始终直接提交到数据库 所有操作都是简单的CRUD,不会缓存任何内容进行读取 事务支持(一个请求可以处理多个表)->提交/回滚 该模型只需为10个表构建,而db有数百个表 如果db是oracle,则表被划分为表空间,并且并非所有这10个表都在同一个表空间中

我正在开发一个应用程序(CRUD WS),它连接到一个数据库,可以是Oracle或SQL server,类型是从配置文件读取的。我可以使用EF来实现DAL吗?一些要求:


  • 这些表没有主键,我无法添加它们
  • C#/.NET 4.0
  • 所有操作都已完成并始终直接提交到数据库
  • 所有操作都是简单的CRUD,不会缓存任何内容进行读取
  • 事务支持(一个请求可以处理多个表)->提交/回滚
  • 该模型只需为10个表构建,而db有数百个表
  • 如果db是oracle,则表被划分为表空间,并且并非所有这10个表都在同一个表空间中
如果我能做到这一点的链接或一个例子将是很好的


我用另一种方式问了这个问题,但我立即获得了两张接近的选票,所以这是我的第二次尝试。

为什么您的表没有主键?数据模型真的那么糟糕吗?我没有看到你之前的问题,但人们投票关闭的原因可能是因为你问了一个相当复杂的问题,需要一些研究才能回答,而你问这个问题和找人研究答案所花的时间比你实际花费的时间要长得多尝试自己做一个实验。“表没有主键,我无法添加它们。”对我来说听起来很可笑,但我确实有兴趣知道,当DBMS类型在构建时未知时,我是否可以使用实体框架。表有“主键”作为唯一索引,可以通过命名约定进行标识。似乎每种类型的DBMS都必须有一个模型,或者至少是模型的一部分()在我的情况下使用EF似乎没有意义,即使我可以添加主键。因为无法添加外键(0作为FK表示没有关联),所以我必须创建其他关系结束错误的关联(1而不是0-1),因为这些列不为null。此外,当数据库发生变化时,必须手动更新模型,这是完全不可接受的。简言之:要使两个模型(oracle/sqlserver)保持最新,收获太少,工作太多。