Skip to content

SylvieManx/EFCodeGenerate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EFCodeGenerate

Entity Framework Mapping->Model 映射生成工具

EFCodeGenerate是一个数据实体映射生成工具+ 适用C#,VB.NET,默认C#,如果需要生成VB.NET,需要自行调整,在类OptimizeContextHandlerOptimizeContext函数内。 我这里因为用的是Oracle,只用了Oracle的C#生。

如果出现Debug生成异常的,设置项目属性->生成 里选择 目标平台 首选32位勾上即可

生成结构

脚本

create table ACTIVE_LISTINGS_REPORT
(
  id                              NUMBER(10) generated always as identity,
  sku                             VARCHAR2(200) not null,    
  item_condition                  NUMBER(10),    
  business_price                  NUMBER(10,2),
  create_time                     DATE default sysdate not null
)

生成C# 代码 C# Model

 public partial class ActiveListingsReport
    {
        public int Id { get; set; }
        public string Sku { get; set; } 
        public Nullable<int> ItemCondition { get; set; } 
        public Nullable<decimal> BusinessPrice { get; set; }
        public System.DateTime CreateTime { get; set; }
    }

生成C# 代码 C# Mapping

 public class ActiveListingsReportMap : EntityTypeConfiguration<ActiveListingsReport>
    {
        public ActiveListingsReportMap()
        {
            // Primary Key
            this.HasKey(t => t.Id);

            // Properties 字符串代码过滤大小
            this.Property(t => t.Sku)
                .IsRequired()
                .HasMaxLength(200);
            
            // Table & Column Mappings
            this.ToTable("ACTIVE_LISTINGS_REPORT");
            this.Property(t => t.Id).HasColumnName("ID");
            this.Property(t => t.Sku).HasColumnName("SKU");       
            this.Property(t => t.ItemCondition).HasColumnName("ITEM_CONDITION");            
            this.Property(t => t.BusinessPrice).HasColumnName("BUSINESS_PRICE");           
            this.Property(t => t.CreateTime).HasColumnName("CREATE_TIME");

        }
    }

最后在不要忘记在DbContext 配置

 public class OracleDbContext : DbContext
    {
        //配置参考https://www.oracle.com/webfolder/technetwork/tutorials/obe/db/dotnet/NuGet/index.html
        public OracleDbContext()
            : base("OracleConnection")
        // base(OracleConnection(),true)
        {
            //this.Database.Log = msg => Debug.WriteLine(msg);
        }

        private static OracleConnection OracleConnection()
        {
            OracleConnection connection = null;
#if DEBUG
            connection = new OracleConnection(
                "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.***)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=Schema)));User ID=jc_cc_001;Password=Jinchang001;");
#endif
            //添加

            return connection;
        }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            //指定数据库用户名,必须大写
            modelBuilder.HasDefaultSchema("USER_NAME");
           //添加Model->Table映射关系
            modelBuilder.Configurations.Add(new ActiveListingsReportMap());

            base.OnModelCreating(modelBuilder);
        }

        public DbSet<ActiveListingsReport> ActiveListingsReport { get; set; }

    }
  

About

Entity Framework Mapping->Model 映射生成工具

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors