zoukankan      html  css  js  c++  java
  • postgres entityframework foreignkey

     1     public class Model
     2     {
     3         [Key, Column("id"), DatabaseGenerated(DatabaseGeneratedOption.Identity)]
     4         public long Id { get; set; }
     5         [Column("create_time")]
     6         public DateTime CreTime { get; set; } = DateTime.Now;
     7         [Column("create_uid")]
     8         public long? CreUid { get; set; }
     9         [Column("update_time")]
    10         public DateTime? UpdTime { get; set; }
    11         [Column("update_uid")]
    12         public long? UpdUid { get; set; }
    13         [Column("remark")]
    14         public string Remark { get; set; }
    15         [Column("is_del")]
    16         public bool IsDel { get; set; } = false;
    17     }
    18 
    19     [Table("a_user_type")]
    20     public class UserCls
    21     {
    22         [Key, Column("id"), DatabaseGenerated(DatabaseGeneratedOption.None)]
    23         public long Id { get; set; }
    24         [Column("des")]
    25         public string Des { get; set; }
    26     }
    27 
    28     [Table("b_user")]
    29     public class User : Model
    30     {
    31         [Column("account"), Index(IsUnique = false)]
    32         public string Account { get; set; }
    33         [Column("passwd")]
    34         public string Passwd { get; set; }
    35         [Column("label")]
    36         public string Label { get; set; }
    37         [Column("cls_id"), ForeignKey("Cls")]
    38         public long? ClsId { get; set; }
    39         public virtual UserCls Cls { get; set; }
    40     }

    以上数据库字段全部取小写,是因为postgres非常严格,驼峰式写法的sql要加双引号,非常麻烦。

    mssqlserver 可以完全不用管,mysql只需注意表的名字小写即可,postgres连字段名都要特别注意。

     1     public class MesDbContext: DbContext
     2     {
     3         public MesDbContext():base("name=mes")
     4         {
     5             Database.SetInitializer(new MigrateDatabaseToLatestVersion<MesDbContext, MigrateConfig>());
     6         }
     7 
     8         public DbSet<User> Users { get; set; }
     9         public DbSet<UserCls> UserCls { get; set; } 
    10     }
    11 
    12     public class MigrateConfig : DbMigrationsConfiguration<MesDbContext>
    13     {
    14         public MigrateConfig()
    15         {
    16             AutomaticMigrationsEnabled = true;
    17             AutomaticMigrationDataLossAllowed = true;
    18         }
    19     }
    1   <entityFramework>
    2     <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
    3     <providers>
    4       <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    5       <provider invariantName="Npgsql" type="Npgsql.NpgsqlServices, EntityFramework6.Npgsql" />
    6     </providers>
    7   </entityFramework>
    8   
    1   <system.data>
    2     <DbProviderFactories>
    3       <!--  注意这里,安装程序包时,这里的配置并不会自动添加  -->
    4       <remove invariant="Npgsql" />
    5       <add name="Npgsql" invariant="Npgsql" description=".Net Framework Data Provider for Postgresql" type="Npgsql.NpgsqlFactory, Npgsql" />
    6     </DbProviderFactories>
    7   </system.data>
    8   
    1 <?xml version="1.0" encoding="utf-8"?>
    2 <packages>
    3   <package id="EntityFramework" version="6.2.0" targetFramework="net45" />
    4   <package id="EntityFramework6.Npgsql" version="3.1.1" targetFramework="net45" />
    5   <package id="Npgsql" version="3.2.5" targetFramework="net45" />
    6   <package id="System.Threading.Tasks.Extensions" version="4.4.0" targetFramework="net45" />
    7 </packages>
  • 相关阅读:
    洛谷 P1578 奶牛浴场 题解
    LOJ167 康托展开 题解
    三校联训 【NOIP模拟】寻找
    洛谷 P1809 过河问题 题解
    有关多边形面积的总结
    LOJ 103 字串查找 题解
    洛谷 P2384 最短路 题解
    POJ 2492 A Bug's Life 题解
    LOJ 10214 计算器 题解
    洛谷 P2868 [USACO07DEC]观光奶牛Sightseeing Cows 题解
  • 原文地址:https://www.cnblogs.com/jonney-wang/p/8438110.html
Copyright © 2011-2022 走看看