使用MapToStoredProcedures时如何传递其他参数

时间:2014-07-26 10:13:16

标签: c# vb.net entity-framework

如您所知,我们可以将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。 我怎么能这样做?

1 个答案:

答案 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();
    }
}