Entity Framework 配置关系(1对1,1对0)
配置 关系 Framework Entity
2023-09-11 14:21:57 时间
Entity Framework 配置关系(1对1,1对0)
实体之间的关系对应数据库表的关系,有1:0,1:1,1:N,N:N这几种。这里介绍1:0、1:1这两种配置关系。
举例说明:Employee表示员工,Account表示通讯账号。有些员工使用通讯账号,但是有些员工不适用这些通讯账号。从员工的角度来观察,员工Employee与通讯账号Account之间的关系就是一个员工对应一个通讯账号(1:1),或者一个员工没有铜须你账号(1:0)。从通讯账号Account的角度来观察,一个通讯账号对应一个员工(1:1)。
(1)实体类:Employee
1 public class Employee 2 { 3 public int Id { get; set; } 4 5 public string Name { get; set; } 6 7 public virtual Account Account { get; set; } 8 }
(2)实体类:Account
1 public class Account 2 { 3 public int Id { get; set; } 4 5 public string UserName { get; set; } 6 7 public string Password { get; set; } 8 9 public virtual Employee Employee { get; set; } 10 }
(3)映射Employee
1 public class EmployeeMap : EntityTypeConfiguration<Employee> 2 { 3 public EmployeeMap() 4 { 5 this.ToTable("Employee"); 6 7 this.HasKey(p => p.Id); 8 9 this.Property(p => p.Id).IsRequired().HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity); 10 this.Property(p => p.Name).IsRequired().HasMaxLength(63); 11 } 12 }
(4)映射Account
1 public class AccountMap : EntityTypeConfiguration<Account> 2 { 3 public AccountMap() 4 { 5 this.ToTable("Account"); 6 7 this.HasKey(p => p.Id); 8 9 this.Property(p => p.Id).IsRequired().HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity); 10 this.Property(p => p.UserName).IsRequired().HasMaxLength(63); 11 this.Property(p => p.Password).IsRequired().HasMaxLength(63); 12 13 this.HasRequired(m => m.Employee) 14 .WithOptional(m => m.Account) 15 .Map(m => m.MapKey("AccountId")) 16 .WillCascadeOnDelete(true); 17 } 18 }
(5)DbContext
1 public class EntFraContext : DbContext 2 { 3 public IDbSet<Account> AccountSet { get; set; } 4 5 public IDbSet<Employee> EmployeeSet { get; set; } 6 7 protected override void OnModelCreating(DbModelBuilder modelBuilder) 8 { 9 modelBuilder.Configurations.Add(new AccountMap()); 10 modelBuilder.Configurations.Add(new EmployeeMap()); 11 12 base.OnModelCreating(modelBuilder); 13 } 14 }
分类: EntityFramework
相关文章
- .Net Core 配置之long类型 前端精度丢失和时间格式设置
- 如何配置git send-email相关的邮箱信息?
- Ubuntu16.04+pycharm+pyqt5安装与配置
- Windows下配置Java开发环境
- Django云服务器配置Nginx站点SSL证书HTTPS协议
- Centos网络配置小工具
- [js高手之路]深入浅出webpack教程系列4-插件使用之html-webpack-plugin配置(上)
- JavaWeb-JSP重点内容模型一、二、Myeclipse配置Tomcat
- server.xml引入子文件配置(tomcat虚拟主机)[转]
- linux系统 wm9713声卡配置 记录
- Entity Framework 配置关系(1对1,1对0)
- java 和 IntelliJ IDEA 的一些配置
- Nginx+Tomcat多实例及负载均衡配置