- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 ntier 解决方案,其中有一个用于我的 POCO 类的域项目。我想生成一些表字段限制为特定长度的数据库。现在我看到有两种方法可以做到这一点,要么在 POCO 类本身中使用数据注释,要么在 DbContext 中使用 OnModelCreating 方法,但哪一种是最好的方法?
我对 OnModelCreating 方法的担忧是,这是特定于 Entity Framework 的。如果我切换到另一个 ORM,数据库配置就会丢失,除非我重新实现它。
使用注释方法,我最终会弄乱我的模型,并担心它们会丢失“POCO”标签。我也不确定其他 ORM 是否会尊重这些注释。另一方面,有关数据库应该是什么样子的所有信息都与模型相关联,因此易于维护。
有什么想法可以指引我正确的方向吗?
最佳答案
OnModelCreating
更好。某些映射功能无法通过数据注释获得。此外,正如您已经提到的,在某些情况下数据注释违反了 POCO 原则,因为您的类可以包含有关持久性的信息,甚至某些数据注释当前需要在域项目中引用 EntityFramework.dll。
另请注意,数据注释是 MS 特定的功能,主要由 MS 工具使用。如果您想将它们与其他 ORM 一起使用,您将必须实现从数据注释到 ORM 映射描述的转换(除非它已经存在)。
关于asp.net-mvc - 用于数据库配置的 OnModelCreating 与 DataAnnotations,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9822105/
当我尝试覆盖 OnModelCreating 时虚函数它说找不到合适的方法来覆盖。我很确定我已经安装了所有必要的 Entity Framework 包 using System; using Syst
我开始使用 Entity Framework 。问题是我的 OnModelCreating 方法从未被调用。 这是我的上下文类: public class TestContext : DbContex
在某些情况下,在应用程序运行期间,我需要打开身份插入: modelBuilder.Entity().Property(p => p.Id).HasDatabaseGeneratedOption(Sys
我有多个相同但内容不同的 SQL 服务器表。在编写代码第一个 EF6 程序时,我试图为每个程序重用相同的 db 上下文并将表名传递给上下文构造函数。 然而,虽然每次都调用构造函数,但 OnModelC
这个问题已经有答案了: How is Identity.EntityFramework OnModelCreating called (2 个回答) 已关闭12 个月前。 我知道当您创建迁移时它会被调
这段代码 using System; using System.Collections.Generic; using System.Linq; using System.Web; using Syst
这个问题已经有答案了: How is Identity.EntityFramework OnModelCreating called (2 个回答) 已关闭12 个月前。 我知道当您创建迁移时它会被调
问题 我目前正在尝试通过设置的属性为我的表及其列添加前缀。我正在使用 Entity Framework 核心。我已经正确地为表名添加了前缀,但我似乎无法为列弄清楚。我觉得我需要使用反射。 我已经离开了
我首先使用实体框架代码来处理我的数据库。我有几个名称不同但结构相同的表,这些表动态出现在数据库中。我如何在运行时将 EntityFramework 映射到其中一个表并使用来自 DbContext
我正在尝试将 asp.net 身份集成到我现有的项目中我首先使用数据库,我没有使用 edmx 生成模型和上下文类,我正在自己创建模型, 现在我的问题是:我可以在 DbContext 类中使用“over
此代码在 MVC 中,我需要在 ASP.net Core 中执行类似操作,使用 Entity Framework Core 或使用 DataAnnotations (我已经将参数从 DbModelBu
我正在使用 Entity Framework 6 并且在我的上下文中我已经覆盖了 OnModelCreating 方法: protected override void OnModelCreating
我正在尝试使用 Identity Framework Core 配置 Multi-Tenancy 应用程序。 我已使用此处的说明成功创建了一个自定义 ApplicationUser 以使用 Tenan
我正在使用代码优先方法,我正在尝试更改 EF 如何创建我的表的行为。我有两个简单的类: 注意:我每次都删除并重新创建我的数据库。这在现实世界中不会发生,但为了测试,我试图拦截创建并强制 EF 按照我的
我正在从事 2 个类似的项目 - 但我没有创建其中任何一个。 它们都有相同的局部上下文,如下: using Microsoft.AspNet.Identity.EntityFramework;
我正在维护正在写入另一个应用程序 (B) 表的应用程序 (A)。问题是 A 写入了许多 B,并且模型在新版本的 B 中发生了变化。 示例:A 的实体 Dog 的列为:Name、Age、Sex 在 B
我想在 DbContext 的 OnModelCreating 方法中调用我自己的一些服务。我需要做什么? 我可以通过 DbContext 构造函数注入(inject)服务。但它似乎不够有效,因为该方
我正在覆盖 OnModelCreating , 在方法中有 base.OnModelCreating(modelBuilder); 行 protected override void OnModelC
我想每隔 new DataContext(new Entity()) 触发 OnModelCreating ...但是当我创建一个表的连接时,它起作用了。当为另一个表创建连接时,OnModelCrea
ASP.NET Core OnModelCreating 强制触发每个请求 我有 ASP.NET Core (1.1.0) 和 SQL Server 数据库。在登录页面中,我有一个带有公司名称选择框的
我是一名优秀的程序员,十分优秀!