【发布时间】:2014-05-12 17:05:27
【问题描述】:
通过过去的例子,我学会了使用DbSet<TEntity>.Create()创建实体对象进行插入。但是,我发现只使用带有对象初始化器的默认构造函数似乎也可以。
我的主要问题是,我们还需要使用DbSet<TEntity>.Create(),为什么?
额外问题:如果有的话,这两个代码示例之间的功能差异是什么?
“书本”:
Dim db As New EFDAL.WidgetDbEntities()
Dim dbWidgetBatch2 As EFDAL.WidgetBatch = db.WidgetBatches.Create()
dbWidgetBatch2.CreationTimestamp = Now
dbWidgetBatch2.CreatedByUsername = userName
db.WidgetBatches.Add(dbWidgetBatch2)
db.SaveChanges()
“同样有效吗?”:
Dim db As New EFDAL.WidgetDbEntities()
Dim dbWidgetBatch As New EFDAL.WidgetBatch With {
.CreationTimestamp = Now,
.CreatedByUsername = userName
}
db.WidgetBatches.Add(dbWidgetBatch)
db.SaveChanges()
【问题讨论】: