【发布时间】:2011-05-15 20:39:55
【问题描述】:
我有以下 POCO:
Public Class T1
<Required()>
<MaxLength(128)>
<Key(), Column(Order:=0)>
Property K1 As String
<Required()>
<MaxLength(128)>
<Key(), Column(Order:=1)>
Property K2 As String
<Required()>
Property C1 As String
Property C2 As String
end Class
我希望 C2 被创建为 Nullable,但 C1 和 C2 都不是 Null。添加
<Required(AllowEmptyStrings:=True)>
没有什么区别,因为装饰似乎是针对数据验证,而不是创建数据库。
那么我如何使用 Code First 获得可为空的列?
【问题讨论】:
-
在@Ladislav 的帮助下,我找到了流畅 API 的以下语法:modelBuilder.Entity(Of T1)().Property(Function(t) t.C1).IsOptional()
-
最后一点 - 正如@Ladislav 指出的那样,将 C1 声明为整数就足够了吗?获得一个可为空的列 - 不需要流畅的 API。
标签: vb.net entity-framework-4 ef-code-first nullable code-first