Я пытаюсь понять, как вводить параметр в Entity Framework 6 при использовании MapToStoredProcedures. Возможно ли это?Как ввести параметр EF6/Code First?
Я просто хочу передать свое зарегистрированное имя пользователя из приложения в хранимую процедуру, но я не могу понять, где EF6 выполняет фактический вызов.
EDIT: Немного больше информации
Итак, БЕЗ MapToStoredProcedures (ака позволяя EF6 просто использовать таблицы непосредственно), я могу сделать следующее в моем переопределен метод SaveChangesAsync:
For Each Entry As DbEntityEntry In Me.ChangeTracker.Entries().Where(Function(o) o.State = EntityState.Deleted)
If TypeOf Entry.Entity Is ISoftDelete Then
'Implements Soft Delete interface, so let's do what needs doing.
Select Case Entry.Entity.GetType()
Case GetType(OS)
Dim _thisOS As OS = TryCast(Entry.Entity, OS)
Using db As New AppRegistrationContext
_thisOS = Await db.OSSet.Include("OSType").FirstOrDefaultAsync(Function(o) o.ID = _thisOS.ID)
End Using
If Not _thisOS Is Nothing Then
Try
Entry.Reference("OSType").CurrentValue = _thisOS.OSType
Catch ex As Exception
Debug.Print(ex.ToString)
End Try
End If
Case GetType(Server)
Case Else
'Do nothing - only filling in extra information for those that we need to
End Select
'Set the archival bits
Entry.Property("Archive").CurrentValue = True
Entry.Property("ArchiveDate").CurrentValue = Date.Now
Entry.Property("ArchiveBy").CurrentValue = HttpContext.Current.User.Identity.Name.ToString()
'Mark it modified
Entry.State = EntityState.Modified
End If
Next
Return Await MyBase.SaveChangesAsync()
Alright, что работает отлично с прямым столом манипулирования от имени EF.
Что я хочу сделать вместо этого, обрабатывает все это в хранимых процедурах, но мне нужно передать HttpContext.Current.User.Identity.Name.ToString() С моей хранимой процедурой удаления, чтобы установить параметр ArchiveBy.
Надеюсь, это лучше иллюстрирует то, что я пытаюсь сделать.
Я пытаюсь работать с ChangeTracker EF в ... моя мысль была, что я бы переопределить Entity.Delete EF, поскольку именно там я думал, что EF бы вызвать хранимую процедуру , но я не могу понять, как его переопределить ... – John