问题标签 [ef-database-first]

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 回答
1223 浏览

entity-framework-4.1 - 如何让 MVC-mini-profiler 首先在 EF 4.1 数据库上工作

为此,我们花了更多时间梳理 SO。这是设置

  • MVC 3 App 使用存储库模式,跨 2 个数据库具有 3 个存储库。
  • EF 4.1 数据库首先使用DBContext API进行两个数据库连接。
  • 从 nuget 安装 mvc-mini-profiler

这就是我在存储库中创建 Db 上下文的方式

然后在控制器中

最后,我添加到 web.config

分析这些连接的下一步是什么?慢慢来,因为这是我第一次接触 Entity Framework,所以对 EF 连接/上下文细节的假设很少。

0 投票
1 回答
554 浏览

asp.net-mvc-3 - 带有 EF 4.1 的 ASP.Net MVC 3:是否可以从数据库优先切换到代码优先

网络 MVC 3 网络应用程序。我使用“database first”从现有数据库生成了我的模型。但现在,我更愿意使用“代码优先”范式。这有可能吗?如何告诉我的解决方案我希望它为我编写的新模型创建表?

0 投票
1 回答
670 浏览

entity-framework - 在“外键参与多个关系”的情况下,实体框架担心什么“可能的数据不一致”?

假设以下数据库模式:

在数据库中,ABC有两个 FK:一个到ABon AIdand BId,一个到BCon BIdand CId

使用 EF 设计器并尝试从此数据库创建模型。

如果您Include foreign key columns in the model 检查过,它可以工作;但是在模型中包含 FK 列并不是很好。

如果您Include foreign key columns in the model 未选中,则只会ABC成功映射其中一个 FK。要查看出了什么问题,您必须查看.edmxxml(感谢 Craig!),然后您会看到以下错误:

警告 6037:存储模型中省略了外键约束“FK_ABC_BC”。表“Model.Store.ABC”的“BId”列是参与多个关系的外键。一对一的实体模型将不会验证,因为数据不一致是可能的。

我已经阅读了我可以在 SO 上找到的关于这个问题的唯一其他提及,我认为这不是同一个问题。在数据库设计级别我看不出有什么问题。我将暂时通过在ABand上施加代理键来解决这个问题BC,但我真正想知道的是:

如果它创建了一个模型来匹配数据库,那么 EF 担心在这里发生什么可能的数据不一致?

我能做些什么来说服它一切都会好起来的吗?

0 投票
3 回答
6222 浏览

entity-framework - 将存储库模式与 EF 4.1 Database First 方法一起使用

这可能吗?

有没有例子?到目前为止,我的搜索已被证明是徒劳的......

我使用这种方法的原因是因为我必须为我的 MVC 3 应用程序坚持使用旧数据库,但是有一些非常复杂的关联和继承层次结构,所以我希望 EF 生成映射而不是我手动进行。我想使用存储库模式进行单元测试。任何建议表示赞赏。

0 投票
1 回答
153 浏览

asp.net-mvc-3 - EF 一直告诉我没有设置了 Identity 的 DB 实体的 InsertFunction?

应用程序使用 Entity Framework 4.1 和数据库优先方法。

我在数据库中有一个用于记录目的的简单表:

它将模型中的 ok 转换为 EntitySet 'LogEntrys' 和 Entity LogEntry。问题是,当我尝试从 applicatio 向表中插入内容时,出现以下错误:

无法更新 EntitySet 'LogEntrys',因为它有一个 DefiningQuery 并且元素中不存在支持当前操作的元素。

我在 SO 上看到过类似的帖子,我试图通过编辑 XML edmx 文件来解决它,就像在这个技巧中解释的那样:MSDN 博客技巧 34,我已经删除了定义查询。密钥已按应有的方式设置。

但后来我收到以下错误:

“无效的对象名称'AMSModelStoreContainer.LogEntrys'。”

我不确定是什么问题,和/或我做错了什么?

有任何想法吗?

谢谢你。

0 投票
1 回答
1023 浏览

c# - EF 4.1 在生成的 sql 中使用错误的模式

我是 EF 的新手,我无法弄清楚我做错了什么。我使用 EF 4.1“数据库优先”为现有数据库创建模型(我无法更改)。我在数据库中需要的所有表都在一个特定的模式中,对于这个问题,我将其称为“my_schema”。在 edmx 设计器文件的主要属性中,我将数据库模式名称设置为“my_schema”。当我检查 edmx 文件的原始 XML 时,它似乎具有正确的架构映射

例如

但是,当我访问 DbContext 类上的 Events 实体集时生成的 SQL 仍然是:

我不确定它是否有任何区别,但我正在使用 ADO.net DBContextGenerator 来生成我的类。

有谁知道我做错了什么。

0 投票
2 回答
7013 浏览

entity-framework-4.1 - Entity Framework 4.1 Database First 不向 DbContext T4 生成的类添加主键

我刚刚开始使用 Entity Framework 4.1,尝试“数据库优先”模式。当 EF 使用“ADO.Net DbContext Generator”生成模型类时,它不应该使用 [Key] 属性标识类的主键吗?没有这个,它似乎与 T4 MVCScaffolding 不兼容。

以下是详细信息:

使用实体数据模型设计器 GUI,我从现有数据库中向模型添加了一个简单的“国家”表。GUI 正确地将名为“PK”的单个整数标识键字段识别为我的主键。(唉!我是新用户,所以我不能添加屏幕截图。我在下面包含了 CSDL。)但是,当 EF 使用“ADO.Net DbContext Generator”生成代码时,它不能识别 PK field 作为生成类中的关键字段(参见下面的代码摘录)。

“国家”表的 CSDL:

这是自动生成的代码:

当我尝试使用 MVCScaffolding T4 模板构建控制器时,这会导致问题。我收到错误“没有属性似乎是主键”。NuGet 包管理器控制台的命令和输出如下:

但是,如果我手动更改生成的类以向字段添加 [Key] 属性,那么上面显示的完全相同的脚手架命令可以正常工作:

那么为什么 EF Database First 和 T4 MVCScaffolding 不能很好地结合在一起呢?即使没有脚手架问题,EF 类是否不需要知道关键字段是什么?

0 投票
1 回答
238 浏览

.net - EntityFramework fluent API“孙子”关系映射

我正在尝试映射 EF fluent API 中似乎非常常见的情况并且已经碰壁了。我有以下课程:

使用下表:

公司
ID - int

部门:
Id - int CompanyId int (FK)

员工
ID - int
姓名 - varchar(50)
DivisionId - int (FK)

如果 Employee 表有一个 CompanyID FK,这个映射将非常简单:

但是,由于我没有从 Employee 表到 Company 表的直接 FK,我似乎无法映射 Company 对象中的 Employees 属性以进行延迟加载。

我错过了什么?

0 投票
1 回答
197 浏览

wpf - 应用程序应该有 3 层

我正在 WPF 中编写一个小型应用程序。它允许我从数据库中保存和读取数据。它有 3 层(业务逻辑、表示层和数据访问)。我使用数据库优先的方法,Entity Framework 为我生成了一个模型。

我的问题是我应该在哪里存储 .edmx 生成的模型?

如果我把它放在数据访问中,我需要在我的业务逻辑中编写一些重复的代码,如果我把这个模型放在业务逻辑中,那么我应该在数据访问层中存储什么?

0 投票
3 回答
6480 浏览

c# - 从实体框架中的 ObjectStateEntry 获取所有键及其值

出于审核日志记录的目的,我覆盖SaveChanges()了 EF 4.1 Database-First approach 中的方法。

我有所有 ObjectStateEntry 对象,我想知道是否可以从每个 ObjectStateEntry 获取所有键及其值。