木魚 发表于 2013-10-16 14:33:28

数据表EF POCO生成脚本 FOR SQL SERVER

数据表EF POCO生成脚本 by 木鱼

支持各数据类型自动识别,支持自增列自动判断,支持自动根据数据库的字段说明等生成注释
不支持外键约束,如果有外键约束请自行增加
遇到不支持的数据类型烦请自行修改脚本 :-)

生成的类包括实体类型以及相应的一个配置类。

用法:

[*]运行,在数据库中生成存储过程
[*]调用存储过程生成类

举例:
现在生成数据表 RSS_Feed 的实体类。
SP_CreateEfClass 'Rss_Feed', 'TestClass.Entities', 'Rss_Feed'

第一个是存储过程名,后面跟三个参数,分别是 表的名字,实体类的命名空间,实体类的类名。
生成代码如下(作为演示使用,后续的属性数据库中没有加注释):
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity;
using System.Data.Entity.ModelConfiguration;

namespace Rss_Feed
{
      /// <summary>
      ///RSS种子
      ///</summary>
      public class TestClass.Entities
      {
                /// <summary>
                /// ID
                /// </summary>
                public int Id { get; set; }

                /// <summary>
                /// 全局ID
                /// </summary>
                public string Guid { get; set; }

                /// <summary>
                /// 标题
                /// </summary>
                public string Title { get; set; }

                /// <summary>
                ///
                /// </summary>
                public string Url { get; set; }

                /// <summary>
                ///
                /// </summary>
                public string Link { get; set; }

                /// <summary>
                ///
                /// </summary>
                public string Description { get; set; }

                /// <summary>
                ///
                /// </summary>
                public string Lang { get; set; }

                /// <summary>
                ///
                /// </summary>
                public DateTime PubDate { get; set; }

                /// <summary>
                ///
                /// </summary>
                public DateTime LastBuildDate { get; set; }

                /// <summary>
                ///
                /// </summary>
                public int Ttl { get; set; }

                /// <summary>
                ///
                /// </summary>
                public DateTime? LastUpdateTime { get; set; }

                /// <summary>
                ///
                /// </summary>
                public DateTime NextUpdateTime { get; set; }

                /// <summary>
                ///
                /// </summary>
                public int UpdateCount { get; set; }

                /// <summary>
                ///
                /// </summary>
                public long NumCount { get; set; }

                /// <summary>
                ///
                /// </summary>
                public int SubscriptionCount { get; set; }

      }

      /// <summary>
      /// 实体类 <see cref="TestClass.Entities" /> 的配置对象
      /// </summary>
      internal class TestClass.EntitiesConfiguration : EntityTypeConfiguration<TestClass.Entities>
      {
                public TestClass.EntitiesConfiguration()
                {
                        ToTable("Rss_Feed");
                        HasKey(m => m.Id);
                        Property(s => s.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
                        Property(s => s.Guid).HasMaxLength(255);
                        Property(s => s.Title).HasMaxLength(200).IsRequired();
                        Property(s => s.Url).HasMaxLength(500).IsRequired();
                        Property(s => s.Link).HasMaxLength(500);
                        Property(s => s.Description).HasMaxLength(510).IsRequired();
                        Property(s => s.Lang).HasMaxLength(10).IsRequired();
                }
      }
}


截图如下:



.NET开发

木魚 发表于 2013-10-16 14:35:06

嗯哼。以下是SQL存储过程的代码。
**** Hidden Message *****




木魚 发表于 2013-10-16 14:36:23

。。。。。貌似代码高亮有问题。待老衲调调。

木魚 发表于 2013-10-16 17:53:08

{:9_341:} 终于搞定了

ApoPhisL 发表于 2013-10-16 23:28:46

花瓣拿来主义。

14309 发表于 2013-10-19 19:25:56

伸手党直接伸手拿

shenlan 发表于 2013-10-23 00:39:08

要回复...屎鱼~~~
页: [1]
查看完整版本: 数据表EF POCO生成脚本 FOR SQL SERVER