问题标签 [entity-framework-4.1]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
1393 浏览

sql-server - “不存在数据时尝试读取无效”-实体框架中“有时”发生异常

我在阅读过程中有时会收到上述错误。每当您在调用 Read() 方法之前尝试读取数据时,该异常就源自 ASP.NET SqlDataReader。由于 EF 在内部执行所有这些操作,我想知道还有什么可能导致此错误。可能是网络(或)数据库连接吗?

谢谢

额外的赏金信息(GenericTypeTea):

升级到 EF Code First RC (4.1) 后我遇到了同样的错误:

“不存在数据时尝试读取无效”

这是有问题的代码:

表结构如下:

该表是独立的,没有任何关系。这是 DbModelBuilder 代码:

完全相同的代码在 CTP5 中完美运行。我猜这是一个 RC 错误,但任何关于如何修复它的想法都将不胜感激。

0 投票
3 回答
4093 浏览

.net - 4.0 之后的下一个主要 Code First Entity Framework 版本的最终发布日期?

我开发了一个项目,使用 MVC3 和 Code first Entity Framework 4.0 作为数据访问层。但是在 GoDaddy.com 上托管项目时,CF Entity Framework 会引发安全异常错误,因为它需要“完全信任”级别才能执行,而大多数网络托管服务提供商都没有提供。

我搜索了各种博客寻找解决方法,发现 ADO.Net 团队已经意识到了这个错误,它将在下一个版本中得到修复。

有没有人知道下一个版本的日期,以便我可以接听是否需要丢弃基于 CF 实体框架创建并使用 ADO.Net 实体框架的模型。

0 投票
1 回答
2627 浏览

entity-framework-4 - 实体框架 4 - 在持久性未知上下文中使用 CTP5(代码优先)映射非公共属性

我知道这个问题已经有了解决方案(例如这个问题),但我真的无法将映射逻辑附加到域(POCO 类)所在的同一个程序集中。

还有其他方法吗?

我找到了这篇不错的博客文章,但无法正常工作。这是模型:

映射代码:

其中 CreateExpression 定义为:

我得到的错误是:

初始化方法 Studentum.Core.Tests.InstituteTests.Initialize 抛出异常。System.TypeInitializationException:System.TypeInitializationException:“Studentum.Core.FluentCoreRepositoryFactory”的类型初始化程序引发了异常。---> System.InvalidOperationException:配置的属性“InnerInstituteTexts”不是实体“Institute”上的声明属性。验证它没有被明确地从模型中排除,并且它是一个有效的原始属性。

0 投票
2 回答
3402 浏览

entity-framework - 不删除表以添加列的 EF Code First 的自定义初始化策略

最新的 EF Code First NuGet 包带有一个IDatabaseInitializer名为DontDropDbJustCreateTablesIfModelChanged. 顾名思义,当检测到模型更改时,它不会删除并重新创建整个数据库,只是删除并重新创建表。

假设我有这个模型类:

一个人将如何去实现一个IDatabaseInitializer不会删除任何表的方法。在这种情况下,它只会OpenID在 User 表中添加一列?

0 投票
1 回答
8077 浏览

entity-framework-4 - 实体框架 4 - 自定义复杂类型映射

我有一个写得很糟糕的遗留数据库架构,我正在通过 EF Code First 使用它。我目前正在映射 POCO 实体,并希望创建一个“地址”复杂类型,并在存储街道地址信息的任何地方使用它。不幸的是,并非所有地址字段在数据库中的名称都相同(即,一个表可能具有“Address1”,而另一个表将具有“Street1”,即使它们引用相同的东西。

有没有办法为基于给定实体的复杂类型创建自定义映射?该映射是什么样的?

0 投票
2 回答
1358 浏览

entity-framework-4 - Entity Framework 4.1 和 SQL Compact 需要哪些程序集?

以前我在我的项目中使用过 Entity Framework 4.0 CTP5(代码优先)和 SQL Compact。我使用 NuGet 安装了以下软件包:

  1. SQLCE.4.0.8435.1(版本 4.0.8435.1)
  2. EFCodeFirst 0.8(版本 4.0.30319.0)
  3. EFCodeFirst.SqlServerCompact.0.8(版本 4.0.8435.1)

现在,当EF 4.1 RC 发布时,我想将我的所有库更新到最新版本。NuGet 提要不再包含 SQLCE.4.0.8435.1 的任何更新,但它有一个新包“ SqlServerCompact - 4.0.8482.1 ”(新包,而不是现有包的新版本)。假设它刚刚被重命名,我应该安装它。这样对吗?假设,是的。

NuGet 也不包含“EFCodeFirst”和“EFCodeFirst.SqlServerCompact”包的任何更新。但它有一个新的“ EntityFramework 4.1.10311.0 ”包。

那我应该安装什么?“ EntityFramework 4.1.10311.0 ”和“ SqlServerCompact - 4.0.8482.1 ”是否足以首先将 EF 代码与 SQL Compact 一起使用?

0 投票
3 回答
1155 浏览

ef-code-first - EF4.1 CodeFirst:添加字段到连接表

我正在使用 EF 4.1 RC 和 CodeFirst/POCO 通过代码构建我的数据库。

想象一下像教师-学生这样的多对多关系(一位老师可以有很多学生,一位学生可能有很多老师)。因此,我有两个 POCO:(1)教师和(2)学生。

当 EF 创建相应的表时,您最终会得到三个表:(1)Teachers、(2) Student 和 (3) 一个额外的连接表。连接表正好包含两个字段:Teacher_ID 和 Student_ID。

我想知道我是否有机会在连接表中添加一个额外的字段,例如“成绩”(某位老师给某位老师的分数)?

目前我不知道如何只用两个 POCO 来实现这一点。

所以我想我能做的就是手动创建第三个 POCO(用于连接表),对吗?这肯定会起作用,但是我失去了像 oneTeacher.Students.First() 等很好的导航属性。这就是我仍在寻找另一种方式的主要原因。

0 投票
1 回答
793 浏览

entity-framework - EF 4.1 存储过程不可用?

Ado.NET 团队最近发布了 EF 4.1 版本,他们说存储过程不可用!!但是原始 SQL 查询仍然支持存储过程,对吗?

那么这段代码是否有效?

0 投票
1 回答
3558 浏览

c# - 实体框架更改跟踪 API 和参考条目

希望在我的 DbContext 子类上编写通用审计代码。

1)如果我只更改参考属性,entry.State 值为“未更改”。

2) 即使第 1 点设置为“已修改”,DbReferenceEntry 类似乎也没有 IsModified 属性,也没有原始值。

我认为这是可能的,因为 EF 必须跟踪这一点。

任何人都可以帮忙吗?

谢谢,本

0 投票
1 回答
4222 浏览

c# - 实体框架 RC1 DbContext 查询问题

我正在尝试首先使用实体​​框架代码 rc 1 来实现存储库模式。我遇到的问题是创建 DbContext。我有一个解析 IRepository 的 ioc 容器,它有一个 contextprovider,它只是用 windsor.config 文件中的连接字符串通知一个新的 DbContext。使用 linq2sql 这部分没问题,但 EF 似乎令人窒息。我将在下面用一个例子来描述这个问题。我已经提取了代码以简化一些事情,这就是为什么您在这里看不到任何存储库模式的东西。只是排序没有所有额外代码和类的情况。

PlssContext 是我创建 DbContext 类的地方。存储库模式对 PlssContext 一无所知。我认为我能做的最好的事情是创建一个带有到 sqlexpress 数据库的连接字符串的 DbContext 并以这种方式查询数据。var context2 中的连接字符串是在更新 PlssContext 对象后从上下文中获取的。所以他们指向同一个 sqlexpress 数据库。

第一个查询有效。第二个查询因此错误而惨遭失败:

自数据库创建以来,支持“DbContext”上下文的模型已更改。手动删除/更新数据库,或使用 IDatabaseInitializer 实例调用 Database.SetInitializer。例如,DropCreateDatabaseIfModelChanges 策略将自动删除并重新创建数据库,并可选择使用新数据为其播种。

在这条线上

这是我的 DbContext

我已经尝试了所有具有相同错误的 Initializer 策略。我不认为数据库正在改变。如果我删除

然后错误返回是

实体类型 User 不是当前上下文模型的一部分。

哪种是有道理的。但是你如何把这一切结合在一起呢?