I have two classes Class1 and Class2
[Table("CLASS1", Schema = "public")]
public class Class1
{
public int Class1Id { get; set; }
public string Name1 { get; set; }
}
[Table("CLASS2", Schema = "public")]
public class Class2
{
public int Class2Id { get; set; }
public string Name2 { get; set; }
public int Class1Id { get; set; }
public virtual Class1 c1 { get; set; }
I defined the DatabaseContext :
public sealed class DatabaseContext : DbContext
{
private static readonly DatabaseContext instance = new DatabaseContext();
public static DatabaseContext Instance
{
get
{
return instance;
}
}
private DatabaseContext()
: base("maconnexion")
{
Database.SetInitializer<DatabaseContext>(null);
}
public DbSet<Class1> table1{ get; set; }
public DbSet<Class2> table2{ get; set; }
}
and i have added those lines to my App.config
<DbProviderFactories>
<add name="Npgsql Data Provider" invariant="Npgsql" description="Data Provider for PostgreSQL" type="Npgsql.NpgsqlFactory, Npgsql" />
</DbProviderFactories>
<connectionStrings>
<add name="maconnexion"
connectionString="Server=127.0.0.1;Port=5432;Database=DB_Ticketing;UserId=postgres;Password=slots2013;" providerName="Npgsql" />
</connectionStrings>
and I have created a database in PostgreSQL with the name DB_Ticketing. But when I execute my code the tables table1 and table2 are not added to my data base.
Configure your application as follows: Step 1 (configure App.config) (copy and paste)
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework,Version=6.0.0.0, Culture=neutral,PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
</configSections>
<connectionStrings>
<add name="maconnexion" connectionString="User Id=postgres;Password=slots2013;Host=localhost;Database=DB_Ticketing;" providerName="Npgsql"/></connectionStrings>
<startup>
<supportedRuntime version="v4.0"sku=".NETFramework,Version=v4.0,Profile=Client"/>
</startup>
<entityFramework>
<providers>
<provider invariantName="Npgsql" type="Npgsql.NpgsqlServices,Npgsql.EntityFramework">
</provider>
</providers>
<defaultConnectionFactory type="Npgsql.NpgsqlConnectionFactory,Npgsql"/>
</entityFramework>
<system.data>
<DbProviderFactories>
<remove invariant="Npgsql"></remove>
<add name="Npgsql Data Provider" invariant="Npgsql" description="Data Provider for PostgreSQL" type="Npgsql.NpgsqlFactory, Npgsql"/>
</DbProviderFactories>
</system.data>
Step 2 (Configure your ContextDB)
public class NameContext:DbContext
{
public NameContext():base(nameOrConnectionString:"maconnexion"){}
public DbSet<Class1> Class1s{ get; set; }
public DbSet<Class2> Class2s{ get; set; }}
Step 3 ( calling a method Insert)
public static void Insert(Class1 o)
{
using (var context = new NameContext())
{ //Where "o" it is an object, for example Class1 o=new Class1();
context.Class1s.Add(o);
context.SaveChanges();
}}
Nota: I recommend use of the DataAnnotations for create your business class, for example: [Table("MyTable", Schema = "MySchema")] public class ob_group { [Key] [Column("nseq_grp")] public int Nseq_grp {get;set;} for more details, you can see: http://www.entityframeworktutorial.net/code-first/dataannotation-in-code-first.aspx I hope it's useful
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With