- 增加 Navigate 属性未设置 set 时的友好错误提示;

- 增加 延时属性重写类对 protected set 的支持;
This commit is contained in:
28810
2020-03-22 01:15:40 +08:00
parent 500a4d02f3
commit cb366cc771
6 changed files with 432 additions and 12 deletions

View File

@ -49,6 +49,9 @@ namespace base_entity
BaseEntity.Initialization(fsql);
#endregion
var test01 = EMSServerModel.Model.User.Select.IncludeMany(a => a.Roles).ToList();
var test01tb = EMSServerModel.Model.User.Orm.CodeFirst.GetTableByEntity(typeof(EMSServerModel.Model.User));
var us = User1.Select.Limit(10).ToList();
new Products { title = "product-1" }.Save();

View File

@ -0,0 +1,52 @@
using System;
using System.Collections.Generic;
using Newtonsoft.Json;
using FreeSql.DataAnnotations;
using FreeSql;
namespace EMSServerModel.Model
{
/// <summary>
/// <20><>ɫ<EFBFBD><C9AB>
/// </summary>
[JsonObject(MemberSerialization.OptIn)]
public partial class Role : BaseEntity<Role>{
/// <summary>
/// <20><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>
/// </summary>
[JsonProperty, Column(IsPrimary = true, IsIdentity = true)]
public long RoleId { get; set; }
/// <summary>
/// <20><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>
/// </summary>
[JsonProperty, Column(DbType = "varchar(50)")]
public string RoleName { get; set; } = string.Empty;
/// <summary>
/// <20><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>
/// </summary>
[JsonProperty, Column(DbType = "varchar(50)")]
public string RoleDesc { get; set; } = string.Empty;
///// <summary>
///// <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
///// </summary>
//[JsonProperty, Column(DbType = "date")]
//public DateTime CreateTime { get; set; } = DateTime.Now;
/// <summary>
/// <20><><EFBFBD><EFBFBD>
/// </summary>
[JsonProperty]
public bool IsEnable { get; set; } = true;
/// <summary>
/// <20><>ɫ<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD>Զർ<D4B6><E0B5BC>
/// </summary>
[Navigate(ManyToMany = typeof(UserRole))]
public virtual ICollection<User> Users { get; protected set; }
}
}

View File

@ -0,0 +1,154 @@
using System;
using System.Collections.Generic;
using Newtonsoft.Json;
using FreeSql.DataAnnotations;
using System.ComponentModel.DataAnnotations;
using FreeSql;
namespace EMSServerModel.Model
{
/// <summary>
/// 用户表
/// </summary>
[JsonObject(MemberSerialization.OptIn)]
public partial class User : BaseEntity<User, long>{
//[JsonProperty, Column(IsIdentity = true)]
//public long Id { get; set; }
/// <summary>
/// 编号
/// </summary>
[JsonProperty, Column(DbType = "varchar(50)", IsPrimary = true)]
public string UserId { get; set; } = string.Empty;
/// <summary>
/// 头像
/// </summary>
[JsonProperty, Column(DbType = "varchar(50)")]
public string Avatar { get; set; } = string.Empty;
/// <summary>
/// 姓名
/// </summary>
[JsonProperty, Column(DbType = "varchar(50)")]
public string UserName { get; set; } = string.Empty;
/// <summary>
/// 艺名
/// </summary>
[JsonProperty, Column(DbType = "varchar(50)")]
public string NickName { get; set; } = string.Empty;
/// <summary>
/// 电话
/// </summary>
[JsonProperty, Column(DbType = "varchar(50)")]
public string Tel { get; set; } = string.Empty;
/// <summary>
/// 性别
/// </summary>
[JsonProperty]
public Sex Sex { get; set; } = Sex.;
/// <summary>
/// 证件号
/// </summary>
[JsonProperty, Column(DbType = "varchar(50)")]
public string UID { get; set; } = string.Empty;
/// <summary>
/// 生日
/// </summary>
[JsonProperty, Column(DbType = "date")]
public DateTime? DateOfBirth { get; set; }
/// <summary>
/// 出生地
/// </summary>
[JsonProperty, Column(DbType = "varchar(50)")]
public string PlaceOfBirth { get; set; } = string.Empty;
/// <summary>
/// 居住地
/// </summary>
[JsonProperty, Column(DbType = "varchar(50)")]
public string Addr { get; set; } = string.Empty;
/// <summary>
/// 密码
/// </summary>
[JsonProperty, Column(DbType = "varchar(50)")]
public string Pwd { get; set; } = string.Empty;
/// <summary>
/// 部门编号
/// </summary>
[JsonProperty]
public long? DeptId { get; set; }
/// <summary>
/// 职务编号
/// </summary>
[JsonProperty]
public long? TitleId { get; set; }
///// <summary>
///// 创建时间
///// </summary>
//[JsonProperty, Column(DbType = "date")]
//public DateTime CreateTime { get; set; } = DateTime.Now;
/// <summary>
/// 国籍
/// </summary>
[JsonProperty, Column(DbType = "varchar(50)")]
public string Nationality { get; set; } = string.Empty;
/// <summary>
/// 经手人
/// </summary>
[JsonProperty, Column(DbType = "varchar(50)")]
public string Handler { get; set; } = string.Empty;
/// <summary>
/// 启用
/// </summary>
[JsonProperty]
public bool IsEnable { get; set; } = true;
/// <summary>
/// 备注
/// </summary>
[JsonProperty, Column(DbType = "varchar(100)")]
public string Memos { get; set; }
/// <summary>
///
/// </summary>
[Navigate(ManyToMany = typeof(UserRole))]
public virtual ICollection<Role> Roles { get; protected set; }
}
/// <summary>
/// 性别枚举
/// </summary>
public enum Sex
{
/// <summary>
/// 女=0
/// </summary>
=0,
/// <summary>
/// 男=1
/// </summary>
=1
}
}

View File

@ -0,0 +1,36 @@
using Newtonsoft.Json;
using FreeSql.DataAnnotations;
using FreeSql;
namespace EMSServerModel.Model
{
/// <summary>
/// <20>û<EFBFBD><C3BB><EFBFBD>ɫ<EFBFBD><C9AB>ϵ<EFBFBD><CFB5>
/// </summary>
[JsonObject(MemberSerialization.OptIn)]
public partial class UserRole : BaseEntity<UserRole>{
/// <summary>
/// <20><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>
/// </summary>
[JsonProperty]
public long RoleId { get; set; }
/// <summary>
/// <20><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>
/// </summary>
[Navigate("RoleId")]
public Role Roles { get; set; }
/// <summary>
/// <20>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
[JsonProperty, Column(DbType = "varchar(50)")]
public string UserId { get; set; }
/// <summary>
/// <20>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
[Navigate("UserId")]
public User Users { get; set; }
}
}

View File

@ -29,5 +29,170 @@
描述
</summary>
</member>
<member name="T:EMSServerModel.Model.Role">
<summary>
角色表
</summary>
</member>
<member name="P:EMSServerModel.Model.Role.RoleId">
<summary>
角色编号
</summary>
</member>
<member name="P:EMSServerModel.Model.Role.RoleName">
<summary>
角色名称
</summary>
</member>
<member name="P:EMSServerModel.Model.Role.RoleDesc">
<summary>
角色描述
</summary>
</member>
<member name="P:EMSServerModel.Model.Role.IsEnable">
<summary>
启用
</summary>
</member>
<member name="P:EMSServerModel.Model.Role.Users">
<summary>
角色用户多对多导航
</summary>
</member>
<member name="T:EMSServerModel.Model.User">
<summary>
用户表
</summary>
</member>
<member name="P:EMSServerModel.Model.User.UserId">
<summary>
编号
</summary>
</member>
<member name="P:EMSServerModel.Model.User.Avatar">
<summary>
头像
</summary>
</member>
<member name="P:EMSServerModel.Model.User.UserName">
<summary>
姓名
</summary>
</member>
<member name="P:EMSServerModel.Model.User.NickName">
<summary>
艺名
</summary>
</member>
<member name="P:EMSServerModel.Model.User.Tel">
<summary>
电话
</summary>
</member>
<member name="P:EMSServerModel.Model.User.Sex">
<summary>
性别
</summary>
</member>
<member name="P:EMSServerModel.Model.User.UID">
<summary>
证件号
</summary>
</member>
<member name="P:EMSServerModel.Model.User.DateOfBirth">
<summary>
生日
</summary>
</member>
<member name="P:EMSServerModel.Model.User.PlaceOfBirth">
<summary>
出生地
</summary>
</member>
<member name="P:EMSServerModel.Model.User.Addr">
<summary>
居住地
</summary>
</member>
<member name="P:EMSServerModel.Model.User.Pwd">
<summary>
密码
</summary>
</member>
<member name="P:EMSServerModel.Model.User.DeptId">
<summary>
部门编号
</summary>
</member>
<member name="P:EMSServerModel.Model.User.TitleId">
<summary>
职务编号
</summary>
</member>
<member name="P:EMSServerModel.Model.User.Nationality">
<summary>
国籍
</summary>
</member>
<member name="P:EMSServerModel.Model.User.Handler">
<summary>
经手人
</summary>
</member>
<member name="P:EMSServerModel.Model.User.IsEnable">
<summary>
启用
</summary>
</member>
<member name="P:EMSServerModel.Model.User.Memos">
<summary>
备注
</summary>
</member>
<member name="P:EMSServerModel.Model.User.Roles">
<summary>
</summary>
</member>
<member name="T:EMSServerModel.Model.Sex">
<summary>
性别枚举
</summary>
</member>
<member name="F:EMSServerModel.Model.Sex.女">
<summary>
女=0
</summary>
</member>
<member name="F:EMSServerModel.Model.Sex.男">
<summary>
男=1
</summary>
</member>
<member name="T:EMSServerModel.Model.UserRole">
<summary>
用户角色关系表
</summary>
</member>
<member name="P:EMSServerModel.Model.UserRole.RoleId">
<summary>
角色编号
</summary>
</member>
<member name="P:EMSServerModel.Model.UserRole.Roles">
<summary>
角色导航
</summary>
</member>
<member name="P:EMSServerModel.Model.UserRole.UserId">
<summary>
用户编号
</summary>
</member>
<member name="P:EMSServerModel.Model.UserRole.Users">
<summary>
用户导航
</summary>
</member>
</members>
</doc>