Vb.net 实体框架4 POCO生成
好的。。。因此,我使用EF4创建了我的模型。太好了 然后我关闭了代码生成并下载了此扩展: (POCO实体生成器)。太棒了 运行它,它生成我所有的类。这就是我要做的吗?它似乎可以工作,我的存储库可以访问对象并持久化到数据库 请看一下下面的代码,让我知道我是否在正确的轨道上 **示例代码** 控制器:Vb.net 实体框架4 POCO生成,vb.net,entity-framework-4,entity,poco,Vb.net,Entity Framework 4,Entity,Poco,好的。。。因此,我使用EF4创建了我的模型。太好了 然后我关闭了代码生成并下载了此扩展: (POCO实体生成器)。太棒了 运行它,它生成我所有的类。这就是我要做的吗?它似乎可以工作,我的存储库可以访问对象并持久化到数据库 请看一下下面的代码,让我知道我是否在正确的轨道上 **示例代码** 控制器: Namespace Controllers Public Class HomeController Inherits System.Web.Mvc.Controller
Namespace Controllers
Public Class HomeController
Inherits System.Web.Mvc.Controller
Function Index() As ActionResult
Return View(New Models.HomeModel)
End Function
End Class
End Namespace
型号:
Namespace Models
Public Class HomeModel
Private _Repository As Titan.Business.Repositories.ICustomerRepository
Private _SalesRepRepo As Titan.Business.Repositories.ISalesRepresentativeRepository
Public Property Customers As IEnumerable(Of Titan.Business.Customer)
Public Property SalesReps As IEnumerable(Of Titan.Business.SalesRepresentative)
Public Sub New()
_Repository = New Titan.Business.Repositories.CustomerRepository
_SalesRepRepo = New Titan.Business.Repositories.SalesRepresentativeRepository
_Customers = _Repository.Query(Function(x) x.LastName.StartsWith("Str"))
_SalesReps = _SalesRepRepo.Query(Function(x) x.LastName.StartsWith("Str"))
End Sub
End Class
End Namespace
存储库和接口:
Namespace Repositories
Public Interface IRepository(Of T)
Function Query(ByVal Predicate As System.Linq.Expressions.Expression(Of Func(Of T, Boolean))) As IEnumerable(Of T)
Function GetByID(ByVal ID As Integer) As T
Sub Add(ByVal Entity As T)
Sub Delete(ByVal Entity As T)
Sub Save(ByVal Entity As T)
End Interface
Public Interface ICustomerRepository
Inherits IRepository(Of Customer)
End Interface
Public Interface ISalesRepresentativeRepository
Inherits IRepository(Of SalesRepresentative)
End Interface
End Namespace
Namespace Repositories
Public Class SalesRepresentativeRepository
Implements ISalesRepresentativeRepository
Public Sub Add(ByVal Entity As SalesRepresentative) Implements IRepository(Of SalesRepresentative).Add
End Sub
Public Sub Delete(ByVal Entity As SalesRepresentative) Implements IRepository(Of SalesRepresentative).Delete
End Sub
Public Function GetByID(ByVal ID As Integer) As SalesRepresentative Implements IRepository(Of SalesRepresentative).GetByID
End Function
Public Function Query(ByVal Predicate As System.Linq.Expressions.Expression(Of System.Func(Of SalesRepresentative, Boolean))) As System.Collections.Generic.IEnumerable(Of SalesRepresentative) Implements IRepository(Of SalesRepresentative).Query
Using db As New GTGContainer
Return db.SalesRepresentatives.Where(Predicate).ToList
End Using
End Function
Public Sub Save(ByVal Entity As SalesRepresentative) Implements IRepository(Of SalesRepresentative).Save
End Sub
End Class
End Namespace
任何建议都会对我很有帮助
服务层在哪里
那汽车制造商呢?我现在需要用它吗
依赖注入?谁愿意解释一下
非常感谢,SamScott Allen有一篇关于创建POCO类的伟大文章,这是很好的第一步,但是,如果你想独立于EF测试你的业务层,你必须引入一个工作单元来协调跨多个存储库的保存状态,并允许DI。Scott Allen有一篇关于创建POCO类的文章,这是一个很好的第一步,但是,如果你想独立于EF测试你的业务层,你必须引入一个工作单元来协调多个存储库中的保存状态,并允许DI。@Sam-这是依赖注入依赖注入有什么好的解读吗?到底是什么?为什么要使用它?依赖项注入使您能够在启动或执行期间为接口提供实现。它使您能够创建松散耦合的组件。@Sam-这是依赖项注入依赖项注入有什么好的解读吗?到底是什么?为什么要使用它?依赖项注入使您能够在启动或执行期间为接口提供实现。它使您能够创建松散耦合的组件。