数据表EF POCO生成脚本 by 木鱼
支持各数据类型自动识别,支持自增列自动判断,支持自动根据数据库的字段说明等生成注释
不支持外键约束,如果有外键约束请自行增加
遇到不支持的数据类型烦请自行修改脚本 :-)
生成的类包括实体类型以及相应的一个配置类。
用法:
举例:
现在生成数据表 RSS_Feed 的实体类。
[SQL] 纯文本查看 复制代码 SP_CreateEfClass 'Rss_Feed', 'TestClass.Entities', 'Rss_Feed'
第一个是存储过程名,后面跟三个参数,分别是 表的名字,实体类的命名空间,实体类的类名。
生成代码如下(作为演示使用,后续的属性数据库中没有加注释):
[C#] 纯文本查看 复制代码 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开发 |