EF 一对一,一对多,多对多 Flunt API 配置
一对一
就拿后台用户权限相关的实体来说明吧,用户表,用户详细表,是一对一的关系:
/// <summary>
/// 用户信息类
/// </summary>
public class User
{
public string UserId { get; set; }
public string UserName { get; set; }
public string Password { get; set; }
public UserStatus Status { get; set; }
public DateTime CreateTime { get; set; }
//public string UserDetailId { get; set; }
public UserDetail UserDetail { get; set; }
}
public UserDetail UserDetail { get; set; }
/// <summary>
/// 用户详细信息类
/// </summary>
public class UserDetail
{
public string UserDetailId { get; set; }
public string Name { get; set; }
public string Age { get; set; }
public int Sex { get; set; }
public User User { get; set; }
}
modelBuilder.Entity<UserDetail>().HasRequired(u => u.User);

modelBuilder.Entity<User>().HasRequired(u => u.UserDetail).WithMany().HasForeignKey(u => u.UserDetailId);

public class Role
{
public string RoleId { get; set; }
public string RoleName { get; set; }
public List<User> Users { get; set; }
}
modelBuilder.Entity<Role>().HasMany(u => u.Users).WithRequired().Map(u => u.MapKey("RoleId"));
public IList<Menu> Menus { get; set; }
public class Menu
{
public string MenuId { get; set; }
public string MenuName { get; set; }
public string Order { get; set; }
public bool Enable { get; set; }
public string AbsPath { get; set; } public IList<Role> Roles { get; set; }
}

modelBuilder.Entity<Role>().HasMany(u => u.Menus).WithMany(u => u.Roles).Map(u =>
{
u.MapLeftKey("MenuId"); //设置左表字段名称
u.MapRightKey("RoleId"); //设置右表字段名称
u.ToTable("Role_Menu"); //设置表名称
});

EF 一对一,一对多,多对多 Flunt API 配置的更多相关文章
- JPA级联(一对一 一对多 多对多)注解【实际项目中摘取的】并非自己实际应用
下面把项目中的用户类中有个:一对一 一对多 多对多的注解对应关系列取出来用于学习 说明:项目运行正常 问题类:一对多.一对一.多对多 ============一对多 一方的设置 @One ...
- Python进阶----表与表之间的关系(一对一,一对多,多对多),增删改查操作
Python进阶----表与表之间的关系(一对一,一对多,多对多),增删改查操作,单表查询,多表查询 一丶表与表之间的关系 背景: 由于如果只使用一张表存储所有的数据,就会操作数 ...
- mybatis 一对一 一对多 多对多
一对一 一对多 多对多
- day 69-70 一对一 一对多 多对一联表查询
day 69 orm操作之表关系,多对多,多对一 多对一/一对多, 多对多{类中的定义方法} day69 1. 昨日内容回顾 1. 单表增删改查 2. 单表查询API 返回QuerySet对象的: 1 ...
- JPA 一对一 一对多 多对一 多对多配置
1 JPA概述 1.1 JPA是什么 JPA (Java Persistence API) Java持久化API.是一套Sun公司 Java官方制定的ORM 方案,是规范,是标准 ,sun公司自己并没 ...
- 使用NHibernate(7)-- 一对一 && 一对多 && 多对多
1, 一对一. 对于数据量比较大的时候,考虑查询的性能,肯能会把一个对象的属性分到两个表中存放:比如用户和用户资料,经常使用的一般是Id和用户名,用户资料(学校,籍贯等)是不经常被查询的,所以就会分成 ...
- MySQL一对一:一对多:多对多: 实例!!!!
学生表和课程表可以多对多 一个学生可以学多门课程 一门课程可以有多个学生: 多对多 *** 一个学生对应一个班级 一个班级对应多个学生: 一对多 *** 一个老师对应多个学生 多个学生对应一个老师:一 ...
- 初学者易上手的SSH-hibernate04 一对一 一对多 多对多
这章我们就来学习下hibernate的关系关联,即一对一(one-to-one),一对多(one-to-many),多对多(many-to-many).这章也将是hibernate的最后一章了,用于初 ...
- SQLAlchemy_定义(一对一/一对多/多对多)关系
目录 Basic Relationship Patterns One To Many One To One Many To Many Basic Relationship Patterns 基本关系模 ...
随机推荐
- LeetCode_Permutation Sequence
The set [1,2,3,…,n] contains a total of n! unique permutations. By listing and labeling all of the p ...
- QT中窗口刷新事件的学习总结
一.主要理解一下几个方法和属性: 1.QWidget * QScrollView::viewport () const 2.void QWidget::paintEvent ( QPaintEvent ...
- SQL基础理论题
sql理论题 1.触发器的作用? 答:触发器是一中特殊的存储过程,主要是通过事件来触发而被执行的.它可以强化约束,来维护数据的完整性和一致性,可以跟踪数据库内的操作从而不允许未经许可的更新和变化.可以 ...
- JVM运行时内存结构
原文转载自:http://my.oschina.net/sunchp/blog/369707 1.JVM内存模型 JVM运行时内存=共享内存区+线程内存区 1).共享内存区 共享内存区=持久带+堆 持 ...
- JAVA并发实现四(守护线程和线程阻塞)
守护线程 Java中有两类线程:User Thread(用户线程).Daemon Thread(守护线程) 用户线程即运行在前台的线程,而守护线程是运行在后台的线程. 守护线程作用是为其他前台 ...
- class 类(1)
创建类 #!/usr/bin/env python # coding=utf-8 __metaclass__ = type class Person: def __init__(self, name) ...
- input文本框获取焦点和失去焦点判断
onBlur:当输入框失去焦点后 onFocus:当输入框获得焦点后 这两个JavaScript事件是写在html标签中的例如: <input type="text" onB ...
- 网站全局js代码
这几天开始看公司的一套系统,整理的网站全局js代码 /*文件名:base.js功能说明:全站通用的全局变量及公用方法创建日期:2010-09-26*///引入jquery库文件document.wri ...
- Sql Server 查看所有存储过程或视图的位置及内容
and a.object_id = b.object_id and a.[type] in ('P','V','AF') order by a.[name] asc 通过这个sql语句可以查到sql ...
- Android SQLite API的使用(非原创)
1.使用SQLite的API来进行数据库的添加.删除.修改.查询 package com.example.sqlitedatabase.test; import android.content.Con ...