加入收藏 | 设为首页 | 会员中心 | 我要投稿 辽源站长网 (https://www.0437zz.com/)- 云专线、云连接、智能数据、边缘计算、数据安全!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

entity-framework – 实体框架6:如何覆盖SQL生成器?

发布时间:2021-03-14 22:30:00 所属栏目:MsSql教程 来源:网络整理
导读:我想在生成数据库模式(DDL)时修改由EF:CF生成的SQL,如 suggested by the Entity Framework team. 如何才能做到这一点? 我无法通过Google找到合适的内容. 解决方法 您可以通过调用DbMigrationsConfiguration类的构造函数中的 DbMigrationsConfiguration.SetS

如果运行Update-Database -Verbose,您将看到CustomSqlServerMigrationSqlGenerator生成的异常:

minLength 5 specified for dbo.MyEntity.Name,'',does not satisfy this requirement.

要解决此问题,请在Up()方法中指定一个长度超过最小长度的defaultValue(例如“unknown”):

public override void Up()
    {
        AddColumn("dbo.MyEntity",defaultValue: "unknown",}));
    }

现在,如果重新运行Update-Database -Verbose,您将看到添加列的ALTER TABLE语句和添加约束的ALTER TABLE语句:

ALTER TABLE [dbo].[MyEntity] ADD [Name] [nvarchar](max) NOT NULL DEFAULT 'unknown'
ALTER TABLE [dbo].[MyEntity] ADD CONSTRAINT [ML_dbo.MyEntity_Name] CHECK (LEN(LTRIM(RTRIM([Name]))) > 5)

另请参阅:EF6: Writing Your Own Code First Migration Operations,其中显示了如何实现自定义迁移操作.

(编辑:辽源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读