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

c# - Entity Framework 4.1 Fluent API 中多个类映射到同一个表

我有一个非常简单的模型,它映射到我的数据库中的一个表(项目)。我选择将图像抽象到它自己的类中。

我将如何使用以下代码将我的模型连接到数据库中的表:

谢谢

0 投票
3 回答
2027 浏览

.net - 使用 Entity Framework 4.1 Code-First 输出创建 SQL

Database.SetInitializer()非常适合测试,但我需要文件中的 SQL 输出才能在生产环境中工作(DBA 不会运行程序来创建数据库)。Castle ActiveRecord 使用ActiveRecordStarter.GenerateCreationScripts(). 如果 EF 中有类似的方法,我找不到任何提及它。这是可行的吗?

0 投票
1 回答
3536 浏览

ef-code-first - EF 4.1 RC:奇怪的级联删除

我不得不承认,EF 4.1 RC Codefirst、DataAnnotations 和 FluentAPI 的特性对我来说仍然是压倒性的。有时我真的不知道自己在做什么 ;-) 请参阅以下 POCO:

总体思路:每个国家都需要有一种货币。但是货币根本不需要分配给一个国家。

如果让 EF 创建相应的数据库,则按照约定将关系设置为 CASCADE DELETE。换句话说:如果您删除一种货币,相应的国家也会被删除。但就我而言,这不是我想要的。

为了禁用 CASCADE DELETE,我在 FluentAPI 中提出了一些代码:

我认为这意味着:每个国家都需要一种货币。并且这种货币可能分配了零个、一个或多个国家/地区(可选)。并且每当我删除一种货币时,相应的国家(如果有的话)将不会被级联删除。

令人惊讶的是,如果我删除相应的货币,给定的方法仍然会级联删除一个国家/地区。谁能告诉我我想念什么?

0 投票
1 回答
111 浏览

c# - 使用 EFCodeFirst 时如何为每个底层数据库列确定正确的 .NET 类型?

使用 EFCodeFirst 时是否有 .Net 数据类型和相应 Sql Server 数据类型的列表?

0 投票
2 回答
292 浏览

c# - [EDMX]映射表拆分

我正在与 POCO 一起使用 Entity Framework 4.1。我想映射表员工:

(与 Employee 表中的 ManagerID 自反关联)

EmployeeBase 抽象类包含

IsManager 为 false 时的 Employee 类(Inherits EmployeeBase)包含

IsManager 为 true 时的 Manager 类(继承 EmployeeBase)

我的问题是,在上下文 TT 中,我只有DbSet<EmployeeBase>. 我怎样才能生成DbSet<Employee>DbSet<Manager>

0 投票
3 回答
6290 浏览

entity-framework - DBContext 添加/附加事件?

EF 4.1 钢筋混凝土。在将实体添加/附加到 DBContext 后,我​​想运行一些代码。有没有这方面的活动(我找不到)。基本上我想检查添加/附加的实体是否属于某个接口,如果是,用它做一些事情。谢谢!

0 投票
1 回答
2681 浏览

.net - 使用 T4 模板与 EF4.1 简化 API 模型优先方法从模型生成 POCO 类

我用视觉设计师创建了模型。现在我想从中生成 POCO 类。在我的另一个问题中,向我建议了 EF4.1 简化的 API 模型优先方法。之前我也在考虑 T4 模板。

与使用 T4 模板生成 POCO 类相比,EF4.1 简化 API Model First 的限制是什么?如果有的话,EF4.1 方法有什么优势(除了它应该更易于使用)?我现在的决定将很难撤销,因为我将拥有相当大的持久层,因此将来可能很难对其进行更改。

特别是,我对此功能感兴趣:

  • 每次我更改模型(在可视化设计器中)时,我能否获得这两个选项中的任何一个来生成数据库表,这样我就不必生成查询并运行它们?这将大大加快我的开发过程(出于某种原因,我每次更改模型时都必须手动删除表,因此需要很多时间)。我知道这可以做到
  • 我可以在另一个项目中使用 POCO 课程吗?我知道这可以是 T4 模板的圆顶,但简化的 API 也可以吗?
  • 生成的 POCO 类中的属性是否可以在每次从模型重新生成时被注释而不被覆盖?(这确实可以通过代码优先方法实现)
  • 效率有什么区别吗?

如果重要的话,选择的任何技术都将用于 ASP.NET MVC 应用程序。


编辑: 如果您知道答案,请回答我的问题的任何子问题。也许连同另一个部分答案,它会给我我需要的信息。谢谢

0 投票
2 回答
25651 浏览

c# - 首先是实体框架代码,不是创建数据库

以下是我的解决方案外观的概述:

在此处输入图像描述

这是我的 PizzaSoftwareData 类:

根据 Scott Guthrie 博客上的示例,您必须在应用程序的开头运行此代码才能创建/更新数据库模式。

我在 PizzaSoftware.UI 中运行 Program.cs 中的那行代码。

谁能告诉我为什么数据库没有创建表?

这是我的 App.config 文件中的连接字符串:

0 投票
2 回答
895 浏览

c# - 是否可以在构建时使用 Ef4 CodeFirst 生成 db sql 脚本?

在构建时,我想自动创建一个 sql 脚本来生成一个新的数据库。我打算使用这个脚本,这样我就可以创建一个可以与生产数据库进行比较的主数据库,以生成一个迁移脚本。我无法使用我的开发数据库,​​因为我已将其设置为在开发期间使用 SqlCE。

不幸的是,我似乎在 CodeFirst API 中找不到任何东西来生成 sql 脚本。我确信这是可能的,因为模型优先做到了。我看到我的 API 调用DbContext来初始化数据库,但没有任何东西可以让我自己实际初始化它的脚本。

我也想在构建时生成这个脚本。发生这种情况的最佳方法是什么?我正在考虑创建一个 T4 模板,并使用 Chirpy 让它在构建时运行它,但我想知道是否有更简单的解决方案。

0 投票
4 回答
31899 浏览

entity-framework - 实体框架验证混淆 - '128' 的最大字符串长度

我遇到了一个令人困惑的问题,在我的 Edit 或 Create 操作结果方法中,EF4 将抛出一个 DbEntityValidationException ,其内部消息说明:

字段 Body 必须是字符串或数组类型,最大长度为“128”。

有问题的模型如下所示:

实际数据库中的“正文”字段是文本类型,因此没有明显的限制。我要发布的数据是这样的:

Edit 方法的示例如下所示:

最后,实际完成繁重工作的方法是:

我在代码或数据库中看不到任何可能导致问题的东西,那么我应该去哪里看呢?