我已经使用实体框架启动了一个相当简单的示例项目。 在项目中,我从SQL Server 2000数据库创建了一个新的实体数据模型。 我能够使用LINQ to Entities查询数据并在屏幕上显示值。

我有一个具有极为相似的架构的Oracle数据库(我想确切地说,但我不知道Oracle的所有详细信息)。 我希望我的项目能够以最小的努力在SQL Server和Oracle数据存储上运行。 我希望我可以简单地更改实体数据模型的配置字符串,而实体框架将负责其余的工作。 但是,似乎无法像我想的那样无缝运行。

有人做过我想做的事吗? 同样,我尝试编写一个可以使用实体框架以最小的工作量查询(和更新)SQL Server或Oracle数据库中的数据的应用程序。 第二个目标是在数据存储之间来回切换时不必重新编译应用程序。 如果我必须“从数据库更新模型”可能没问题,因为我不必重新编译,但是我宁愿不必走这条路。 有谁知道可能需要采取的任何步骤?

===============>>#1 票数:2 已采纳

在术语“持久性无知”下通常可以理解的是,您的实体类不会被框架依赖性所淹没(对于N层方案很重要)。 现在不是这种情况,因为实体类必须实现某些EF接口(“ IPOCO”),而不是普通的旧CLR对象。 正如另一位发布者所提到的, 为此 ,有一个称为持久性无知(POCO)适配器的Entity Framework V1解决方案,而EF V2将开箱即用地支持POCO。

但是我认为您真正想到的是数据库独立性。 通过一个包含存储模型,概念模型以及两者之间的映射(将在设计时从中生成类型化的ObjectContext)的大型配置XML,我也很难想象如何透明地支持两个数据库。

看起来更有前途的是应用独立于数据库的ADO.NET提供程序,例如DataDirect的提供程序。 DataDirect还宣布了对2008年第三季度的EF支持。

===============>>#2 票数:1

http://blogs.msdn.com/jkowalski/archive/2008/09/09/persistence-ignorance-poco-adapter-for-entity-framework-v1.aspx

主要问题是实体框架的设计没有考虑到持久性的无知。 老实说,我会考虑使用除实体框架以外的其他东西。

  ask by YeahStu translate from so

未解决问题?本站智能推荐:

2回复

实体框架6-将否定1映射到C#true

我有一个现有的系统,由于某种原因,我无法理解我的一生,所以它在数据库(Oracle 12.C)中具有负1(-1)作为true的表示形式。 我真的很希望能够在EF 6中将此映射到一个布尔值,而不必担心具有包装属性。 有人知道支持这种情况的方法吗? 我看到的麻烦是像where(v =&
1回复

如何编写LINQ以使用CONTAINS关键字生成SQL

我正在使用EF连接Oracle数据库并编写一个像这样的linq查询 从linq生成的SQL使用以%%符号包装的Like和关键字。 看起来还可以,但是我需要使用“ Contains”关键字的sql,并且需要将SQL像 我该如何实现?
1回复

使用实体框架的导航属性更新数据库

我使用导航属性为实体创建了以下模型。 和 使用这些实体,我正在按照以下方式读取记录...。 这可以很好地读取记录。 接下来,我尝试使用相同的模型更新或插入新记录,以便我可以调用 任何想法如何做到这一点? 谢谢
2回复

使用实体框架插入记录(数据库优先)

有3个数据库表(电影,评论,用户) 评论表包括(MemeberID,MovieID,评论文本,Rate,ReviewDate)(评论中的MemeberID和MovieID是成员表和电影表的FK)电影可以有很多评论,我正在尝试为电影添加评论 即使我有电影类和成员类,我也有问题,为了插入
2回复

没有数据库的实体框架

我喜欢使用实体框架有很多原因 - 实体设计师的易用性,linq的强大功能以及绑定的简易性。 偶尔我想构建一个不需要使用数据库的简单应用程序,但仍需要处理数据并将其显示在屏幕上,网格等中,所以我想创建一个快速EF模型并将其用于此,但它似乎只是将它用于本地数据非常有用。 我的问题是 - 是否
3回复

为什么实体框架会向数据库进行如此多的往返?

我正在重写我的应用程序以使用实体框架。 我感到困惑的是我写的代码看起来像是在sql server上做了不必要的三脚架。 例如,我有一个类似于SO的问题答案网站。 当我添加问题的答案时 - 这是我使用的代码: 在上面的代码中有2个数据库调用对吗? 如果是这样,为什么我不能直接添加问
2回复

实体框架导致数据库视图的差异

我在我的数据库中创建了一个特定的视图(使用左连接加入约5-6个表)。这个视图被添加到我的edmx(实体框架1.0)。 最近我注意到使用edmx(linq到实体然后ToList())获得的一个列记录多次重复,但在数据库视图中它们是不同的 我启动了我的SQL分析器,得到了我的应用程序发送到
2回复

您如何处理实体框架中的数据库更改

我使用codefirst,并发布了我的应用程序的1.0版。 现在,我更改了一些表内容,并希望将应用程序的1.0 db升级为2.0。 通常在实体框架中如何处理这种情况?
1回复

实体框架-数据库表在Linq中连接到实体

我有两个数据库表,分别称为员工和员工详细信息。 我使用entityframwork。 我想制作一个包含两个表字段的编辑页面。 现在,当我单击网格视图(具有两个表的详细信息)时,我传递了主ID并基于该ID进行了联接。 连接细节如下 在上面的代码“ CombineModel”
1回复

如何在实体框架解决方案中同时使用多个数据库?

我有两个不相关的数据库,我需要在它们之间来回传递数据。 现在我已经创建了两个独立的实体模型 - 每个数据库一个 - 但是这导致了我的代码中的问题b / c我必须做一个使用nameofcontext / End Using,当我尝试使用第一个结果时一秒钟内的代码部分使用nameofcontext