94 lines
3.8 KiB
C#
94 lines
3.8 KiB
C#
using NLog;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data.Entity;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace SHERPA.BBM
|
|
{
|
|
public class MainDbContext : DbContext
|
|
{
|
|
#region Private Fields
|
|
|
|
private static NLog.Logger Log = LogManager.GetCurrentClassLogger();
|
|
|
|
#endregion Private Fields
|
|
|
|
#region Public Constructors
|
|
|
|
// Il contesto è stato configurato per utilizzare una stringa di connessione 'BBMModel' dal file di configurazione
|
|
// dell'applicazione (App.config o Web.config). Per impostazione predefinita, la stringa di connessione è destinata al
|
|
// database 'BBMModel' nell'istanza di LocalDb.
|
|
//
|
|
// Per destinarla a un database o un provider di database differente, modificare la stringa di connessione 'BBMModel'
|
|
// nel file di configurazione dell'applicazione.
|
|
[Obsolete("This constructor should never be used directly, and is only needed to generate entityframework stuff. Connection string can be adapted as pleased.")]
|
|
//public DatabaseContext() : base("BBMModel")
|
|
public MainDbContext() : base("Data Source=SQLSTEAM;Initial Catalog=SHERPA.BBM;User ID=sa;Password=keyhammer;integrated security=False;MultipleActiveResultSets=True;App=EntityFramework")
|
|
{
|
|
}
|
|
|
|
public MainDbContext(string connectionString) : base(connectionString)
|
|
{
|
|
Log.Info($"init MainDbContext - start");
|
|
|
|
try
|
|
{
|
|
Database.CreateIfNotExists();
|
|
Log.Error("CreateIfNotExists - DONE");
|
|
|
|
//Database.SetInitializer(new MigrateDatabaseToLatestVersion<StratonLocalizerDatabase, Migrations.Configuration>());
|
|
Database.SetInitializer<MainDbContext>(null);
|
|
Database.Initialize(false);
|
|
}
|
|
catch (Exception exc)
|
|
{
|
|
Log.Error($"Eccezione in fase init MainDbContext, connectionString: {connectionString}{Environment.NewLine}{exc}");
|
|
}
|
|
Log.Error("init MainDbContext - DONE");
|
|
}
|
|
|
|
#endregion Public Constructors
|
|
|
|
// Aggiungere DbSet per ogni tipo di entità che si desidera includere nel modello. Per ulteriori informazioni
|
|
// sulla configurazione e sull'utilizzo di un modello Code, vedere http://go.microsoft.com/fwlink/?LinkId=390109.
|
|
|
|
#region Public Properties
|
|
|
|
public virtual DbSet<DatabaseModels.BasketsModel> DbSetBaskets { get; set; }
|
|
public virtual DbSet<DatabaseModels.CompanyModel> DbSetCompanies { get; set; }
|
|
public virtual DbSet<DatabaseModels.FluxCountersModel> DbSetCounters { get; set; }
|
|
public virtual DbSet<DatabaseModels.CustomersModel> DbSetCustomers { get; set; }
|
|
public virtual DbSet<DatabaseModels.DocsModel> DbSetDocs { get; set; }
|
|
|
|
public virtual DbSet<DatabaseModels.Fatt2DocModel> DbSetFatt2Doc { get; set; }
|
|
|
|
public virtual DbSet<DatabaseModels.ItemsModel> DbSetItems { get; set; }
|
|
|
|
public virtual DbSet<DatabaseModels.NegotiationsModel> DbSetNegotiations { get; set; }
|
|
|
|
public virtual DbSet<DatabaseModels.ResourcesModel> DbSetResources { get; set; }
|
|
|
|
public virtual DbSet<DatabaseModels.TagModel> DbSetTags { get; set; }
|
|
|
|
public virtual DbSet<DatabaseModels.TagItemModel> DbSetTags2Items { get; set; }
|
|
|
|
#endregion Public Properties
|
|
|
|
#region Protected Methods
|
|
|
|
protected override void OnModelCreating(DbModelBuilder modelBuilder)
|
|
{
|
|
base.OnModelCreating(modelBuilder);
|
|
|
|
modelBuilder.Entity<DatabaseModels.TagItemModel>().HasKey(ti => new { ti.ItemId, ti.TagId });
|
|
|
|
// Precision attribute for decimals
|
|
Precision.ConfigureModelBuilder(modelBuilder);
|
|
}
|
|
|
|
#endregion Protected Methods
|
|
}
|
|
} |