木子屋 Dnawo's BLOG

Entity Framework Power Tools Beta 2生成代码结构

👤 dnawo 📅 2012-08-16 👁 4313 👍 0 💬 0 🔄 来源:本站原创
一、test库结构

Create TABLE [dbo].[CategoryTB](
	[Id] [int] IDENTITY(1,1) NOT NULL,
	[Name] [nvarchar](50) NULL,
 CONSTRAINT [PK_CategoryTB] PRIMARY KEY CLUSTERED 
(
	[Id] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]

Create TABLE [dbo].[UserTB](
	[Id] [int] IDENTITY(1,1) NOT NULL,
	[CategoryId] [int] NOT NULL,
	[Usn] [nvarchar](20) NOT NULL,
	[Pwd] [nvarchar](20) NOT NULL,
	[Created] [datetime] NULL,
 CONSTRAINT [PK__UserTB] PRIMARY KEY CLUSTERED 
(
	[Id] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]

GO
Alter TABLE [dbo].[UserTB]  WITH CHECK ADD  CONSTRAINT [FK_UserTB_CategoryTB] FOREIGN KEY([CategoryId])
REFERENCES [dbo].[CategoryTB] ([Id])

二、Entity Framework Power Tools Beta 2生成代码

1、Mapping

Models\Mapping\CategoryTBMap.cs:
using System.ComponentModel.DataAnnotations;
using System.Data.Entity.ModelConfiguration;

namespace ConsoleApplication1.Models.Mapping
{
    public class CategoryTBMap : EntityTypeConfiguration<CategoryTB>
    {
        public CategoryTBMap()
        {
            // Primary Key
            this.HasKey(t => t.Id);

            // Properties
            this.Property(t => t.Name)
                .HasMaxLength(50);

            // Table & Column Mappings
            this.ToTable("CategoryTB");
            this.Property(t => t.Id).HasColumnName("Id");
            this.Property(t => t.Name).HasColumnName("Name");
        }
    }
}

Models\Mapping\UserTBMap.cs:
using System.ComponentModel.DataAnnotations;
using System.Data.Entity.ModelConfiguration;

namespace ConsoleApplication1.Models.Mapping
{
    public class UserTBMap : EntityTypeConfiguration<UserTB>
    {
        public UserTBMap()
        {
            // Primary Key
            this.HasKey(t => t.Id);

            // Properties
            this.Property(t => t.Usn)
                .IsRequired()
                .HasMaxLength(20);

            this.Property(t => t.Pwd)
                .IsRequired()
                .HasMaxLength(20);

            // Table & Column Mappings
            this.ToTable("UserTB");
            this.Property(t => t.Id).HasColumnName("Id");
            this.Property(t => t.CategoryId).HasColumnName("CategoryId");
            this.Property(t => t.Usn).HasColumnName("Usn");
            this.Property(t => t.Pwd).HasColumnName("Pwd");
            this.Property(t => t.Created).HasColumnName("Created");

            // Relationships
            this.HasRequired(t => t.CategoryTB)
                .WithMany(t => t.UserTBs)
                .HasForeignKey(d => d.CategoryId);

        }
    }
}

2、Models

Models\CategoryTB.cs:
using System;
using System.Collections.Generic;

namespace ConsoleApplication1.Models
{
    public class CategoryTB
    {
        public CategoryTB()
        {
            this.UserTBs = new List<UserTB>();
        }

        public int Id { get; set; }
        public string Name { get; set; }
        public virtual ICollection<UserTB> UserTBs { get; set; }
    }
}

Models\UserTB.cs:
using System;
using System.Collections.Generic;

namespace ConsoleApplication1.Models
{
    public class UserTB
    {
        public int Id { get; set; }
        public int CategoryId { get; set; }
        public string Usn { get; set; }
        public string Pwd { get; set; }
        public Nullable<System.DateTime> Created { get; set; }
        public virtual CategoryTB CategoryTB { get; set; }
    }
}

3、Context

Models\testContext.cs:
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
using ConsoleApplication1.Models.Mapping;

namespace ConsoleApplication1.Models
{
	public class testContext : DbContext
	{
		static testContext()
		{
			Database.SetInitializer<testContext>(null);
		}

		public testContext()
			: base("Name=testContext")
		{
		}

		public DbSet<CategoryTB> CategoryTBs { get; set; }
		public DbSet<UserTB> UserTBs { get; set; }

		protected override void OnModelCreating(DbModelBuilder modelBuilder)
		{
			modelBuilder.Configurations.Add(new CategoryTBMap());
			modelBuilder.Configurations.Add(new UserTBMap());
		}
	}
}

评论(0)

暂无评论。

计算题
评论需审核通过后显示
← 上一篇 ASP.NET MVC3同一View多个表单测试 下一篇 → IIS Express 7.5默认站点路径及端口修改方法