小编Jam*_*ose的帖子

VB.NET编译器如何选择运行哪个扩展重载?

有一个有趣的奇怪 - 认为有人可能会帮助.

这可以从这个问题的可空类型中获得一些乐趣:

如何检查对象是否可以为空?

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)

.net vb.net extension-methods overloading

7
推荐指数
1
解决办法
546
查看次数

所有实体都继承自一个主基表的优缺点是什么?

我使用实体框架数据库的第一种方法来创建我的域模型。

我正在考虑使用以下基本属性创建一个基表 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

4
推荐指数
2
解决办法
654
查看次数