有一个有趣的奇怪 - 认为有人可能会帮助.
这可以从这个问题的可空类型中获得一些乐趣:
Option Strict On
Module Test
' Call this overload 1
<Extension()>
Function IsNullable(obj As ValueType) As Boolean
Return False
End Function
' Call this overload 2
<Extension()>
Function IsNullable(Of T As {Structure})(obj As Nullable(Of T)) As Boolean
Return True
End Function
Sub Test()
' a is an integer!
Dim a As Integer = 123
' calling IsNullable as an extension method calls overload 1 and returns false
Dim result1 As Boolean = a.IsNullable()
' calling …
Run Code Online (Sandbox Code Playgroud) 我使用实体框架数据库的第一种方法来创建我的域模型。
我正在考虑使用以下基本属性创建一个基表 EntityBase:
PK
CreatedDate
CreatedBy
ModifiedDate
ModifiedBy
etc.
Run Code Online (Sandbox Code Playgroud)
使用 Table Per Type 继承,我最终会在数据库中得到一个链接到所有其他实体表的表:
EntityBase {
EntityBase_PK => Identity PK
CreatedDate
CreatedBy
ModifiedDate
ModifiedBy
}
DerivedEntity1 {
DerivedEntity1_PK => FK relationship to EntityBase on EntityBase_PK
Property1
...etc
}
DerivedEntity2 {
DerivedEntity2_PK => FK relationship to EntityBase on EntityBase_PK
Property2
...etc
}
...etc
Run Code Online (Sandbox Code Playgroud)
我相信这将适用于实体框架,但我担心从数据库的角度来看这是否是好的设计。
我可以看到的明显好处是,我为整个数据库中的所有实体获得了一个唯一的 PK,但我担心每次更新都会影响 EntityBase 表,这可能是一个性能问题,并且会对表锁定产生影响。
想法?
sql-server database-design entity-framework entity-framework-4.1