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

.net - 在应用程序中访问 DbContext 是不是很糟糕?

我通常会看到封装了 CRUD 方法甚至是简单的扩展方法的存储库模式示例。我发现创建 DbContext 已经可以轻松使用的存储库方法真的很烦人。如果原因是在 DbContext 和整个应用程序之间创建松散耦合,那么我们已经可以通过将 DbContext 提取到接口并在整个应用程序中使用它来做到这一点。

因此,对于简单的方法,将 DbContext 作为存储库的成员访问而不是通过存储库包装它们看起来更好。你怎么看 ?

0 投票
1 回答
12402 浏览

entity-framework - 实体类型不是当前上下文模型的一部分

DB 有一张桌子PackagingInfo。我有一Package堂课,还有一个ShopEntities : DbContext.

在实例化_db上下文并检查它的Packages属性和异常之后:

更新

我已经编辑了这个问题并请求重新打开它,因为这种情况也发生在模型优先方法中,其中表映射是在 EDMX 文件中完成的,而不是在此处注意到的注释:

模型浏览器窗口显示Package模型和存储实体类型,实体的表映射显示正确映射到表列的每个属性。这与注释代码优先样式完成的映射相同。

0 投票
2 回答
1218 浏览

asp.net-mvc-3 - 如何在 MVC 中的 EF CodeFirst Poco 类和 ViewModel 类之间共享 DataAnnotations?

我正在使用 EF-CodeFirst 从我的 Poco 对象及其配置创建数据库。我大量使用 Dataannotation (Required、DataLength、RegularExpression、DataType) 来获取 MVC 的元数据,并让错误消息指向资源以便稍后本地化它们。

对于简单的 CRUD 操作,这不是问题。

但是一旦我需要 ViewModel 类,我就会从我的 Poco 对象中释放 Dataannotations。

如何在不损害 DRY(不要重复自己)原则的情况下将这两种设计结合起来?

谢谢安德烈亚斯

0 投票
1 回答
549 浏览

entity-framework - 在 EF Code-first 中,三个实体可以共享同一个连接表吗?

鉴于以下情况,Entity Framework Code-first 未命名/重命名连接或连接表。

User 和 AppUser 都有以下配置条目:

在运行时尝试使用 AppUsers (DbSet<AppUser>) 时出现以下错误。

“无效的对象名称 'dbo.UserRoleLinks1'。” “无效的对象名称 'dbo.UserRoleLinks1'。”

似乎代码优先配置正在增加连接表名称,因为一个已经存在。

我怎样才能得到这个工作?有没有更好的方法来获取表列的子集?

0 投票
2 回答
2042 浏览

entity-framework - 实体框架 DBSet.Add 方法不尊重 IDENTITY_INSERT ON

我运行这个查询:

就在我.Add()DbSet.

我的数据仍然使用身份值而不是我提供的 ID。

我只是暂时想要这个(用于数据迁移),然后它应该在未来保持自动生成的身份。

我正在为我的数据库使用 SQL Server CE 4。

0 投票
1 回答
6371 浏览

entity-framework-4 - 模拟 DbContext.Set()?

我们首先使用 EF 代码,并为我们的销售数据库提供数据上下文。此外,我们有一个类位于我们的数据上下文之上并执行一些基本的 CRUD 操作。

例如,我们有以下功能:

我找到了一个如何创建假上下文和 IDBset 属性的示例。我开始实施它,但遇到了一个问题。

当我们尝试创建通用 CRUD 方法时,我们在代码中非常自由地使用 dc.Set()(如上所示)。我们只需要 Read(),而不是 ReadCustomer、ReadContact 等。但是,dc.Set 返回一个 DbSet,而不是一个 IDbSet,所以我无法模拟它。

有没有人能够模拟或伪造 DbContext 并仍然使用 Set 功能?

0 投票
2 回答
2109 浏览

entity-framework - EF Code First CTP5 - 使用属性名称作为外键的列名

给定以下模型:

EF 尝试将 FK 列生成为BarId

如何让它使用TheBar

我尝试了以下方法:

但是在尝试使用上下文时出现以下异常:

0 投票
2 回答
576 浏览

entity-framework - EF 4 CTP 5 复杂查询

我有一个如下模型:

我正在使用这个基础设施

我的聚合根是客户、订单、产品。我没有在此处包含映射,因为它们是直截了当的。

使用 LINQ,您将如何选择所有订购“饮料”类别产品的客户?

我在网上看到的所有示例都是非常基本的查询,没有什么高级的。

0 投票
2 回答
1632 浏览

entity-framework-4 - EF 4:不支持引用非标量变量

我首先使用代码并尝试对 List 属性进行简单查询,以查看它是否包含过滤列表中的字符串。但是我遇到了问题。为简单起见,假设如下。

我正在考虑的选项是将其转换为 json 序列化字符串,因为如果 FavoriteColors 是字符串,我可以执行 Contains 调用。或者,我可以过分创建一个“颜色”实体,但这是相当重的重量。不幸的是,也不支持枚举。

0 投票
2 回答
19871 浏览

entity-framework - 模拟或伪造 DbEntityEntry 或创建新的 DbEntityEntry

在我关于模拟 DbContext.Set的另一个问题之后,我还有另一个关于模拟 EF Code First 的问题。

我现在有一个更新方法,如下所示:

Context是我自己的DbContext的一个接口。

我遇到的问题是,我该如何处理

Context.Entry(entity).State.

我已经逐步完成了这段代码,当我有一个真实的 DbContext 作为我的 Context 接口的实现时,它就可以工作。但是当我把我的假上下文放在那里时,我不知道如何处理它。

DbEntityEntry 类没有构造函数,所以我不能只在我的假上下文中创建一个新的。

有没有人在您的 CodeFirst 解决方案中模拟或伪造 DbEntityEntry 取得任何成功?

还是有更好的方法来处理状态变化?