问题标签 [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.
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 连接/上下文细节的假设很少。
asp.net-mvc-3 - 带有 EF 4.1 的 ASP.Net MVC 3:是否可以从数据库优先切换到代码优先
网络 MVC 3 网络应用程序。我使用“database first”从现有数据库生成了我的模型。但现在,我更愿意使用“代码优先”范式。这有可能吗?如何告诉我的解决方案我希望它为我编写的新模型创建表?
entity-framework - 在“外键参与多个关系”的情况下,实体框架担心什么“可能的数据不一致”?
假设以下数据库模式:
在数据库中,ABC
有两个 FK:一个到AB
on AId
and BId
,一个到BC
on BId
and CId
。
使用 EF 设计器并尝试从此数据库创建模型。
如果您Include foreign key columns in the model
检查过,它可以工作;但是在模型中包含 FK 列并不是很好。
如果您Include foreign key columns in the model
未选中,则只会ABC
成功映射其中一个 FK。要查看出了什么问题,您必须查看.edmx
xml(感谢 Craig!),然后您会看到以下错误:
警告 6037:存储模型中省略了外键约束“FK_ABC_BC”。表“Model.Store.ABC”的“BId”列是参与多个关系的外键。一对一的实体模型将不会验证,因为数据不一致是可能的。
我已经阅读了我可以在 SO 上找到的关于这个问题的唯一其他提及,我认为这不是同一个问题。在数据库设计级别我看不出有什么问题。我将暂时通过在AB
and上施加代理键来解决这个问题BC
,但我真正想知道的是:
如果它创建了一个模型来匹配数据库,那么 EF 担心在这里发生什么可能的数据不一致?
我能做些什么来说服它一切都会好起来的吗?
entity-framework - 将存储库模式与 EF 4.1 Database First 方法一起使用
这可能吗?
有没有例子?到目前为止,我的搜索已被证明是徒劳的......
我使用这种方法的原因是因为我必须为我的 MVC 3 应用程序坚持使用旧数据库,但是有一些非常复杂的关联和继承层次结构,所以我希望 EF 生成映射而不是我手动进行。我想使用存储库模式进行单元测试。任何建议表示赞赏。
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'。”
我不确定是什么问题,和/或我做错了什么?
有任何想法吗?
谢谢你。
c# - EF 4.1 在生成的 sql 中使用错误的模式
我是 EF 的新手,我无法弄清楚我做错了什么。我使用 EF 4.1“数据库优先”为现有数据库创建模型(我无法更改)。我在数据库中需要的所有表都在一个特定的模式中,对于这个问题,我将其称为“my_schema”。在 edmx 设计器文件的主要属性中,我将数据库模式名称设置为“my_schema”。当我检查 edmx 文件的原始 XML 时,它似乎具有正确的架构映射
例如
但是,当我访问 DbContext 类上的 Events 实体集时生成的 SQL 仍然是:
我不确定它是否有任何区别,但我正在使用 ADO.net DBContextGenerator 来生成我的类。
有谁知道我做错了什么。
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 类是否不需要知道关键字段是什么?
.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 属性以进行延迟加载。
我错过了什么?
wpf - 应用程序应该有 3 层
我正在 WPF 中编写一个小型应用程序。它允许我从数据库中保存和读取数据。它有 3 层(业务逻辑、表示层和数据访问)。我使用数据库优先的方法,Entity Framework 为我生成了一个模型。
我的问题是我应该在哪里存储 .edmx 生成的模型?
如果我把它放在数据访问中,我需要在我的业务逻辑中编写一些重复的代码,如果我把这个模型放在业务逻辑中,那么我应该在数据访问层中存储什么?
c# - 从实体框架中的 ObjectStateEntry 获取所有键及其值
出于审核日志记录的目的,我覆盖SaveChanges()
了 EF 4.1 Database-First approach 中的方法。
我有所有 ObjectStateEntry 对象,我想知道是否可以从每个 ObjectStateEntry 获取所有键及其值。