EF之实体拆分

来源:互联网 发布:淘宝上怎么开企业店铺 编辑:程序博客网 时间:2024/04/30 17:57

实体拆分:将一个实体类拆分成多张表。

例:Code First模式下将实体User拆分为Users表和UserInfo表。

using System;using System.Collections.Generic;using System.ComponentModel.DataAnnotations;using System.Data.Entity;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ConsoleApp{    class Program    {        static void Main(string[] args)        {            using (var db = new DemoContext())            {                User user = new User { UserName = "Tony", Password = "3.1415926", RealName = "吴先森", Age = 25, Address = "BJ" };                db.Users.Add(user);                db.SaveChanges();                IEnumerable<User> users = db.Users.AsEnumerable<User>();                foreach (var u in users)                {                    Console.WriteLine("UserName:{0}, Password:{1}.", u.UserName, u.Password);                }            }            Console.ReadKey();        }    }    //DbContent    public class DemoContext : DbContext    {        public DemoContext()            : base("name=DemoContext")        {        }        public DbSet<User> Users { get; set; }        protected override void OnModelCreating(DbModelBuilder modelBuilder)        {            //one entity to many tables            modelBuilder.Entity<User>()                .Map(m =>                {                    m.Properties(t => new { t.Id, t.UserName, t.Password });                    m.ToTable("Users");                })                .Map(m =>                {                    m.Properties(t => new { t.Id, t.RealName, t.Age, t.Address });                    m.ToTable("UserInfo");                });            base.OnModelCreating(modelBuilder);        }    }    //Entity    public class User    {        [Key]        public int Id { get; set; }        public string UserName { get; set; }        public string Password { get; set; }        public string RealName { get; set; }        public int Age { get; set; }        public string Address { get; set; }    }}


0 0
原创粉丝点击