如您所知,我们可以将EF的插入/更新/删除功能映射到服务器上的自定义存储过程。
我想我有一些这样的代码:
modelBuilder.Entity(Of Attitude).MapToStoredProcedures(Sub(e)
e.Insert(Function(f) f.HasName("sp_AttitudeInsert"))
e.Update(Function(f) f.HasName("sp_AttitudeUpdate"))
e.Delete(Function(f) f.HasName("sp_AttitudeDelete"))
End Sub)
现在我想在EF想要调用它们时将一些额外的参数传递给sp_AttitudeInsert
或其他SP。
我怎么能这样做?
答案 0 :(得分:1)
1参数 - 1个属性
参数名称对应于属性名称。 - Source
只需在模型中添加其他属性即可。
public DateTime AdditionalSpecificDate { get; set; }
在保存更改期间拦截它以设置值,因为您希望每次调用when EF wants to call them
时都需要它。
public class AppContext : DbContext
{
public override int SaveChanges()
{
var addedAttitudes = ChangeTracker.Entries<Attitude>()
.Where(q => q.State == EntityState.Added);
foreach (var attitude in addedAttitudes)
{
attitude.Entity.AdditionalSpecificDate = DateTime.Now;
}
return base.SaveChanges();
}
}