对于存储层中的模型,是否存在使用域层继承的问题?

时间:2017-12-27 21:51:55

标签: asp.net-mvc vb.net inheritance separation-of-concerns

首先使用EF 6代码,相对较新的关注点,DI,继承等。以下类简化为关注我的问题。我有一个用于表示层的MVC项目,一个用于域层的类库项目和一个用于SQL层的类库项目。

我在域层中设计了以下模型:

Public Class TaskList
    <Key> Public Overridable Property TaskListID As Integer
    Public Property TaskListOwner As String
    Public Property Tasks As New List(Of TaskItem)
End Class

Public Class TaskItem
    <Key> Public Overridable Property TaskId As Integer
    Public Property TaskName As String
    Public Property TaskDesc As String
    Public Property TaskOwner As String
End Class

这个模型在SQL层中使用来自域的继承:

Public Class SqlTaskList
    Inherits TaskList
    <Key> Public Overrides Property TaskListID As Integer

    Function SqlToDomainTaskList() As TaskList
     ...
        Return theDomainTaskList
    End Function
End Class

Public Class SqlTaskItem
    Inherits TaskItem
    <Key> Public Overrides Property TaskId As Integer

    Function SqlToDomainTaskItem(theSqlTaskItem) As TaskItem
     ...
        Return theDomainTaskItem
    End Function
End Class

我会在以后编码时遇到问题吗?看起来使用继承使我在设计SQL模型时不再重复自己(真正的模型当然要大得多),并且还允许域模型中的更改自动传播到存储模型中。我是否正确,错误,部分正确?我以后会这样做会有问题吗?

关于问题的分离,由于SQL层始终保存域对象,因此SQL层与域更紧密地耦合是不是没有问题?

0 个答案:

没有答案