mirror of
https://github.com/Sonarr/Sonarr
synced 2024-12-30 19:56:54 +00:00
58 lines
1.6 KiB
C#
58 lines
1.6 KiB
C#
using System;
|
|
|
|
namespace Marr.Data.Mapping
|
|
{
|
|
/// <summary>
|
|
/// This class has fluent methods that are used to easily configure the table mapping.
|
|
/// </summary>
|
|
public class TableBuilder<TEntity>
|
|
{
|
|
private FluentMappings.MappingsFluentEntity<TEntity> _fluentEntity;
|
|
|
|
public TableBuilder(FluentMappings.MappingsFluentEntity<TEntity> fluentEntity)
|
|
{
|
|
_fluentEntity = fluentEntity;
|
|
}
|
|
|
|
#region - Fluent Methods -
|
|
|
|
public TableBuilder<TEntity> SetTableName(string tableName)
|
|
{
|
|
MapRepository.Instance.Tables[typeof(TEntity)] = tableName;
|
|
return this;
|
|
}
|
|
|
|
public FluentMappings.MappingsFluentColumns<TEntity> Columns
|
|
{
|
|
get
|
|
{
|
|
if (_fluentEntity == null)
|
|
{
|
|
throw new Exception("This property is not compatible with the obsolete 'MapBuilder' class.");
|
|
}
|
|
|
|
return _fluentEntity.Columns;
|
|
}
|
|
}
|
|
|
|
public FluentMappings.MappingsFluentRelationships<TEntity> Relationships
|
|
{
|
|
get
|
|
{
|
|
if (_fluentEntity == null)
|
|
{
|
|
throw new Exception("This property is not compatible with the obsolete 'MapBuilder' class.");
|
|
}
|
|
|
|
return _fluentEntity.Relationships;
|
|
}
|
|
}
|
|
|
|
public FluentMappings.MappingsFluentEntity<TNewEntity> Entity<TNewEntity>()
|
|
{
|
|
return new FluentMappings.MappingsFluentEntity<TNewEntity>(true);
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
}
|