Nuget包在LCL中使用EntityFramework作为ORM LCL.Repositories.EntityFramework。您应该将它添加到您的应用程序中。最好在应用程序的一个独立的程序集(dll)中实现EntityFramework,并依赖于这个程序集的包。
如您所知,要使用EntityFramework,您应该为您的应用程序定义一个DbContext类。下面显示了一个DbContext示例:
public class EFTestContext : BaseDbContext
{
#region Ctor
public EFTestContext()
: base("LCL")
{
}
public EFTestContext(string nameOrConnectionString)
: base(nameOrConnectionString)
{
EntityTypeConfigurations = Assembly.GetExecutingAssembly().GetTypes();
}
#endregion
#region Public Properties
public DbSet<Role> Roles
{
get { return Set<Role>(); }
}
#endregion
#region Protected Methods
public override void LModelCreating(DbModelBuilder modelBuilder)
{
}
#endregion
}
它是一个常规的DbContext类
EntityFramework可以用传统的方式将类映射到数据库表。你甚至不需要做任何配置,除非你做一些自定义的东西。 在本例中,我们将实体映射到不同的表。默认情况下,任务实体映射到任务表。但我们把它改成了stst问起表。 我不喜欢用数据注释属性配置它,而是喜欢使用流畅的配置。你可以选择你喜欢的方式。
存储库用于从更高的层抽象数据访问。更多信息请参阅存储库文档。
public class RoleRepository : EntityFrameworkRepository<Role>, IRoleRepository
{
public RoleRepository(IRepositoryContext context)
: base(context)
{ }
}
由于LCL与EntityFramework进行了内置集成,因此它可以与数据存储实体框架支持。我们的免费启动模板是用来与Sql Server一起工作的,但是您可以修改它们以使用不同的数据存储。