- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
引用Entity Framework 6中的System.Data.Entity.Migrations.Builders
ColumnBuilder
类,我们以Int
方法为例.
如果我们正在创建一个 EF 迁移,我们将添加一个列,如下所示:
AddColumn("Table", "Column", c => c.Int());
在 AddColumn
的最后一个参数中,我们传入 c => c.Int()
其中 c.Int()
调用ColumnBuilder 类上的 Int()
方法并返回一个 ColumnModel
。
如果我们查看 Int()
方法的定义,我们可以看到该方法的第一个参数是一个 bool?
,它将定义DB 创建为是否可为空。
文档说参数 nullable
是一个“指示该列是否允许空值的值”。参见 https://msdn.microsoft.com/en-us/library/dn589880(v=vs.113).aspx .所以我认为这意味着如果它是 true
则该列将可以为 null,如果它是 false
则不可为 null。
问题是如果它是null
会发生什么?为什么这个 bool
属性需要可以为空?
最佳答案
这取决于 MigrationSqlGenerator
实现。
例如,System.Data.Entity.SqlServer.SqlServerMigrationSqlGenerator
添加 NOT NULL
到 ALTER TABLE ... ADD COLUMN ...
语句 if nullable == false
,否则不添加任何内容。对于 ALTER COLUMN
,nullable == false
在 NULL
之前添加一个 NOT
(它在生成的语句中,无论).
因此 nullable == null
将生成提供程序实现的任何默认值。
关于c# - 为什么 Entity Framework ColumnBuilder 采用可为 null 的 bool 来表示可为 null 的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30042543/
考虑这个迁移代码: CreateTable( "dbo.Document", c => new {
我正在尝试为主要从服务器创建值的数据表的 Angular Controller 编写测试。我试过 mock DTOptionsBuilder 和 DTColumnBuilder 但这似乎不起作用。我得
引用Entity Framework 6中的System.Data.Entity.Migrations.Builders ColumnBuilder类,我们以Int方法为例. 如果我们正在创建一个 E
我是一名优秀的程序员,十分优秀!