У меня есть два проекта с некоторыми классами, которые являются расширениями класса DBContext для сохранения текущего имени пользователя в базе данных:
project DataModel:
Public MustInherit Class ModelBase Inherits DbContext
Public Sub New()
MyBase.New()
Me.CurrentUser = "unknown"
End Sub
Public Sub New(user As String)
Me.New
Me.CurrentUser = user
End Sub
End Class
Public Class Model Inherits ModelBase
Public Sub New(user As String)
MyBase.New(user)
End Sub
End Class
UI проекта (MVC):
Public Class ModelUI Inherits DataModel.Model
Public Sub New()
MyBase.New(HttpContext.Current.User.Identity.Name)
End Sub
End Class
Итак, простой обзор наследования:
ModelBase
|
\- Model
|
\- ModelUI
В описанной выше ситуации Iполучить следующие ошибки при попытке компоновки контроллера MVC в проекте пользовательского интерфейса:
Когда я удаляю MustInherit
из Datamodel.ModelBase
, я могу создать контроллер scaffoldedбез проблем.Однако я все еще не могу создать контроллер scaffolded из унаследованных классов:
Итак, мой текущий обходной путь:
- удалить MustInherit из базыclass
- решение по перестройке
- создание элементов лесов из базового класса
изменение используемого класса в элементах лесов на использование дочернего класса
Private db As New DataModel.ModelBase
до
Private db As New ModelUI
добавить MustInherit обратно в базовый класс
- решение по перестройке
- ...
Есть идеи, зачем мне все это делать?