问题标签 [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 投票
1 回答
1238 浏览

entity-framework - 实体框架代码优先只读键

在 EF 4.1 RC1 中,我有一个简单的实体,例如 say Category,其属性 ID 为 int。我可以将其设为只读属性并且仍然可以使用吗?

如果不是,你如何保护PK/FK?

0 投票
1 回答
384 浏览

entity-framework - F# -> EF 生成错误的 sql

我正在尝试在 EF 中建立一个简单的多对一关系,并将其定义为:

并在控制台启动中以以下方式调用它:

以上将生成以下 SQL 查询:

现在是我的问题,为什么要使用 Car 类型中定义的 Dealer 并将其转换为Dealer_ID而不是DealerID?

0 投票
1 回答
6769 浏览

.net - SQL Server Sequential Guid 作为使用 Entity Framework Code First 时的键

我想使用 EF4 将实体映射到具有顺序 guid 作为 PK 的表。根据这篇文章http://leedumond.com/blog/using-a-guid-as-an-entitykey-in-entity-framework-4/ EF4 支持这一点,但带有 edmx 映射。有没有办法在使用 EF4 Code First 时使用服务器生成的 Guid,如果是,如何使用?

0 投票
1 回答
32540 浏览

entity-framework - ADO.NET DbContext 生成器与 ADO.NET Poco 实体生成器 (ObjectContext)

我即将开始实施一个采用 DDD 方法构建的项目的数据访问基础架构(这是我对 DDD 的第一次尝试,所以要温柔;-))。

我将使用实体框架。到目前为止,我一直在研究 Julie Lerman 在她的好书Programming Entity Framework中教授的方法,其中使用了ADO.NET POCO 实体生成器,对 T4 模板和一些自定义代码进行了一些更改。
今天,我开始阅读有关 EF4.1 和ADO.NET DbContext Generator的文章,使用Database First方法,我正在尝试决定应该使用哪一个。

DbContext 和 EF4.1 在 DDD 上的方法似乎比 POCO 实体更好,更干净,但我担心它可能会在不久的将来导致一些问题,因为 EF4.1 仍处于 RC 中。

ADO.NET 团队博客,我知道 EF4.1包括:

  • 枚举支持
  • 空间数据类型支持
  • Code First 中的存储过程支持
  • Code First 中的迁移支持
  • Code First 中的可定制约定

据我了解,由于我将使用Database First,因此未包含的功能数量较少。

总之,我的问题是:
我可以用 EF4.1 DbContext 生成器替换POCO 实体生成器吗?

0 投票
2 回答
1186 浏览

c# - Entity Framework 4.1 和通用 IRepository模式和温莎

Entity Framework RC1 DbContext 查询问题的后续问题

我可以使用注入我的 DbContext

这很好用。但是,这仅在我的上下文初始化程序不需要删除数据库时才有效。

创建错误

无法删除数据库“PLSS.Models.PlssContext”,因为它当前正在使用中。

我认为这意味着温莎容器正在使用它。这是否与作为 PerWebRequest 的 LifeStyle 有关?我也尝试过 Transient 解决同样的问题。

另外,我将如何使用 xml 容器表示来创建组件。我宁愿把它放在我的 windsor.config 中,这样我可以在必要时更改它。

我认为这等同于我上面使用流利的 api 的内容,但我得到一个奇怪的错误,我将在下面发布。

来自程序集“Microsoft.Web.Mvc,Version=2.0.0.0,Culture=neutral,PublicKeyToken=null”的“Microsoft.Web.Mvc.MvcDynamicSessionControllerFactory”类型中的方法“GetControllerSessionBehavior”没有实现。

不知道那是怎么回事,但是...

0 投票
2 回答
2239 浏览

ef-code-first - EF 4.1 搞砸了。FK 命名策略有变化吗?

我刚刚安装了新的 Entity Framework 4.1 NuGet 包,因此EFCodeFirst根据 NuGet 指令 Scott Hanselman 的这篇文章替换了该包。

现在,想象以下模型:

最后一个 EFCodeFirst 版本在UserThing名为UserUserName.

安装新版本并运行后,出现以下错误:

这当然意味着新版本有不同的 FK 命名策略。这在所有其他表和列中是一致的:任何名为AnyOldForeignKeyIDEF 4.1 的 FK EFCodeFirst 想要调用AnyOldForeignKey_ID(注意下划线)。

我不介意用下划线命名 FK,但在这种情况下,这意味着必须要么不必要地丢弃数据库并重新创建它,要么不必要地重命名 al FK。

有谁知道为什么 FK 命名约定发生了变化,以及是否可以在不使用 Fluent API 的情况下对其进行配置?

0 投票
2 回答
1909 浏览

poco - 无法使用工作单元模式从 POCO 中删除子实体

我在 EF4 CTP5 项目上使用 POCO 类,但在删除子属性时遇到问题。这是我的例子(希望不会太长)。

Tour Class的相关部分

命令处理程序

这是我在 UnitOfWork 调用时遇到的错误DbContext.SaveChanges()

操作失败:无法更改关系,因为一个或多个外键属性不可为空。当对关系进行更改时,相关的外键属性将设置为空值。如果外键不支持空值,则必须定义新的关系,必须为外键属性分配另一个非空值,或者必须删除不相关的对象。

发生这种情况是因为 EF 不会仅仅因为它已从我的 Tour 类的 Agents 集合中删除而自动从数据库中删除代理实体。

我需要显式调用dbContext.Agents.DeleteObject(a);,但我的问题是,我无法从我的 POCO 中访问 dbContext。

有没有办法处理这种情况?

0 投票
7 回答
55228 浏览

.net - 从 DbValidationException 获取准确的错误类型

我有这样的情况,我在 EF 4.1 的 DatabaseInitializer() 中初始化我的模型并得到这个烦人的错误"Validation failed for one or more entities. See 'EntityValidationErrors' property for more details."所以,我转到这个 EntityValidationErrors 并且有一个字段{System.Data.Entity.Validation.DbEntityValidationResult}根本没有给我任何关于它无法初始化的字段的信息. 有没有办法获得有关此错误的更多信息?

清除事情:

我知道如何解决字符串长度问题。我要问的是如何获得破坏模型的确切字段名称。

0 投票
1 回答
6243 浏览

entity-framework - Entity Framework 4.1Code First 连接到 Sql Server 2005

我正在尝试将 Entity Framework 4.1 RC 与 SQL Server 2005 实例一起使用。我创建了一个空数据库,我想将我的 POCO 对象保存到它。我的 POCO 看起来像:

我的 CartContext 是:

我有一个连接字符串:

当我尝试将对象添加到上下文并保存它时,我得到:

System.Data.Entity.Infrastructure.DbUpdateException:更新条目时出错。有关详细信息,请参阅内部异常。---> System.Data.UpdateException:更新条目时出错。有关详细信息,请参阅内部异常。---> System.Data.SqlClient.SqlException:无效的对象名称“dbo.Carts”。

如果我分析数据库,我可以看到用户连接,在 sys.tables 中查找数据库运行此查询:

然后尝试插入我的购物车对象。它从不尝试创建 Carts 表。我猜连接字符串有问题,但是我在任何地方都找不到有关如何执行此操作的示例。

0 投票
5 回答
14167 浏览

entity-framework - EF Code First 4.1 根本不支持 nvarchar(max) 吗?

我在这个问题上花费了相当多的时间,但仍然无法弄清楚为什么 EF 团队使用 Code First 让生活变得如此艰难。

所以这里有一些示例:

我的 POCO:

我希望事情看起来像这样:

唯一有效的:

问题是,在第一种情况下,我尝试插入它给我的任何东西:Validation failed for one or more entities而第二种情况不适合我的商业模式。

我是唯一一个有这个问题的人吗?我该如何处理这件事?