问题标签 [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.
.net - 在应用程序中访问 DbContext 是不是很糟糕?
我通常会看到封装了 CRUD 方法甚至是简单的扩展方法的存储库模式示例。我发现创建 DbContext 已经可以轻松使用的存储库方法真的很烦人。如果原因是在 DbContext 和整个应用程序之间创建松散耦合,那么我们已经可以通过将 DbContext 提取到接口并在整个应用程序中使用它来做到这一点。
因此,对于简单的方法,将 DbContext 作为存储库的成员访问而不是通过存储库包装它们看起来更好。你怎么看 ?
entity-framework - 实体类型不是当前上下文模型的一部分
DB 有一张桌子PackagingInfo
。我有一Package
堂课,还有一个ShopEntities : DbContext
.
在实例化_db
上下文并检查它的Packages
属性和异常之后:
更新
我已经编辑了这个问题并请求重新打开它,因为这种情况也发生在模型优先方法中,其中表映射是在 EDMX 文件中完成的,而不是在此处注意到的注释:
模型浏览器窗口显示Package
模型和存储实体类型,实体的表映射显示正确映射到表列的每个属性。这与注释代码优先样式完成的映射相同。
asp.net-mvc-3 - 如何在 MVC 中的 EF CodeFirst Poco 类和 ViewModel 类之间共享 DataAnnotations?
我正在使用 EF-CodeFirst 从我的 Poco 对象及其配置创建数据库。我大量使用 Dataannotation (Required、DataLength、RegularExpression、DataType) 来获取 MVC 的元数据,并让错误消息指向资源以便稍后本地化它们。
对于简单的 CRUD 操作,这不是问题。
但是一旦我需要 ViewModel 类,我就会从我的 Poco 对象中释放 Dataannotations。
如何在不损害 DRY(不要重复自己)原则的情况下将这两种设计结合起来?
谢谢安德烈亚斯
entity-framework - 在 EF Code-first 中,三个实体可以共享同一个连接表吗?
鉴于以下情况,Entity Framework Code-first 未命名/重命名连接或连接表。
User 和 AppUser 都有以下配置条目:
在运行时尝试使用 AppUsers (DbSet<AppUser>) 时出现以下错误。
“无效的对象名称 'dbo.UserRoleLinks1'。” “无效的对象名称 'dbo.UserRoleLinks1'。”
似乎代码优先配置正在增加连接表名称,因为一个已经存在。
我怎样才能得到这个工作?有没有更好的方法来获取表列的子集?
entity-framework - 实体框架 DBSet.Add 方法不尊重 IDENTITY_INSERT ON
我运行这个查询:
就在我.Add()
从DbSet
.
我的数据仍然使用身份值而不是我提供的 ID。
我只是暂时想要这个(用于数据迁移),然后它应该在未来保持自动生成的身份。
我正在为我的数据库使用 SQL Server CE 4。
entity-framework-4 - 模拟 DbContext.Set()?
我们首先使用 EF 代码,并为我们的销售数据库提供数据上下文。此外,我们有一个类位于我们的数据上下文之上并执行一些基本的 CRUD 操作。
例如,我们有以下功能:
我找到了一个如何创建假上下文和 IDBset 属性的示例。我开始实施它,但遇到了一个问题。
当我们尝试创建通用 CRUD 方法时,我们在代码中非常自由地使用 dc.Set()(如上所示)。我们只需要 Read(),而不是 ReadCustomer、ReadContact 等。但是,dc.Set 返回一个 DbSet,而不是一个 IDbSet,所以我无法模拟它。
有没有人能够模拟或伪造 DbContext 并仍然使用 Set 功能?
entity-framework - EF Code First CTP5 - 使用属性名称作为外键的列名
给定以下模型:
EF 尝试将 FK 列生成为BarId。
如何让它使用TheBar?
我尝试了以下方法:
但是在尝试使用上下文时出现以下异常:
entity-framework - EF 4 CTP 5 复杂查询
我有一个如下模型:
我正在使用这个基础设施。
我的聚合根是客户、订单、产品。我没有在此处包含映射,因为它们是直截了当的。
使用 LINQ,您将如何选择所有订购“饮料”类别产品的客户?
我在网上看到的所有示例都是非常基本的查询,没有什么高级的。
entity-framework-4 - EF 4:不支持引用非标量变量
我首先使用代码并尝试对 List 属性进行简单查询,以查看它是否包含过滤列表中的字符串。但是我遇到了问题。为简单起见,假设如下。
我正在考虑的选项是将其转换为 json 序列化字符串,因为如果 FavoriteColors 是字符串,我可以执行 Contains 调用。或者,我可以过分创建一个“颜色”实体,但这是相当重的重量。不幸的是,也不支持枚举。
entity-framework - 模拟或伪造 DbEntityEntry 或创建新的 DbEntityEntry
在我关于模拟 DbContext.Set的另一个问题之后,我还有另一个关于模拟 EF Code First 的问题。
我现在有一个更新方法,如下所示:
Context是我自己的DbContext的一个接口。
我遇到的问题是,我该如何处理
Context.Entry(entity).State
.
我已经逐步完成了这段代码,当我有一个真实的 DbContext 作为我的 Context 接口的实现时,它就可以工作。但是当我把我的假上下文放在那里时,我不知道如何处理它。
DbEntityEntry 类没有构造函数,所以我不能只在我的假上下文中创建一个新的。
有没有人在您的 CodeFirst 解决方案中模拟或伪造 DbEntityEntry 取得任何成功?
还是有更好的方法来处理状态变化?