首先使用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层与域更紧密地耦合是不是没有问题?