XCode/XUnitTest.XCode/Code/Entity/地区.cs

466 lines
18 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Runtime.Serialization;
using System.Web.Script.Serialization;
using System.Xml.Serialization;
using NewLife;
using NewLife.Data;
using XCode;
using XCode.Cache;
using XCode.Configuration;
using XCode.DataAccessLayer;
namespace XCode.Membership666;
/// <summary>地区。行政区划数据最高支持四级地址9位数字</summary>
[Serializable]
[DataObject]
[Description("地区。行政区划数据最高支持四级地址9位数字")]
[BindIndex("IX_Area_ParentID", false, "ParentID")]
[BindIndex("IX_Area_Name", false, "Name")]
[BindIndex("IX_Area_PinYin", false, "PinYin")]
[BindIndex("IX_Area_JianPin", false, "JianPin")]
[BindIndex("IX_Area_GeoHash", false, "GeoHash")]
[BindIndex("IX_Area_UpdateTime_ID", false, "UpdateTime,ID")]
[BindTable("Area", Description = "地区。行政区划数据最高支持四级地址9位数字", ConnName = "Membership666", DbType = DatabaseType.None)]
public partial class Area : IArea, IEntity<IArea>
{
#region
private Int32 _ID;
/// <summary>编码。行政区划编码</summary>
[DisplayName("编码")]
[Description("编码。行政区划编码")]
[DataObjectField(true, false, false, 0)]
[BindColumn("ID", "编码。行政区划编码", "")]
public Int32 ID { get => _ID; set { if (OnPropertyChanging("ID", value)) { _ID = value; OnPropertyChanged("ID"); } } }
private String? _Name;
/// <summary>名称</summary>
[DisplayName("名称")]
[Description("名称")]
[DataObjectField(false, false, true, 50)]
[BindColumn("Name", "名称", "", Master = true)]
public String? Name { get => _Name; set { if (OnPropertyChanging("Name", value)) { _Name = value; OnPropertyChanged("Name"); } } }
private String? _FullName;
/// <summary>全名</summary>
[DisplayName("全名")]
[Description("全名")]
[DataObjectField(false, false, true, 50)]
[BindColumn("FullName", "全名", "", Master = true)]
public String? FullName { get => _FullName; set { if (OnPropertyChanging("FullName", value)) { _FullName = value; OnPropertyChanged("FullName"); } } }
private Int32 _ParentID;
/// <summary>父级</summary>
[DisplayName("父级")]
[Description("父级")]
[DataObjectField(false, false, false, 0)]
[BindColumn("ParentID", "父级", "")]
public Int32 ParentID { get => _ParentID; set { if (OnPropertyChanging("ParentID", value)) { _ParentID = value; OnPropertyChanged("ParentID"); } } }
private Int32 _Level;
/// <summary>层级</summary>
[DisplayName("层级")]
[Description("层级")]
[DataObjectField(false, false, false, 0)]
[BindColumn("Level", "层级", "")]
public Int32 Level { get => _Level; set { if (OnPropertyChanging("Level", value)) { _Level = value; OnPropertyChanged("Level"); } } }
private String? _Kind;
/// <summary>类型。省市县,自治州等</summary>
[DisplayName("类型")]
[Description("类型。省市县,自治州等")]
[DataObjectField(false, false, true, 50)]
[BindColumn("Kind", "类型。省市县,自治州等", "")]
public String? Kind { get => _Kind; set { if (OnPropertyChanging("Kind", value)) { _Kind = value; OnPropertyChanged("Kind"); } } }
private String? _English;
/// <summary>英文名</summary>
[DisplayName("英文名")]
[Description("英文名")]
[DataObjectField(false, false, true, 50)]
[BindColumn("English", "英文名", "")]
public String? English { get => _English; set { if (OnPropertyChanging("English", value)) { _English = value; OnPropertyChanged("English"); } } }
private String? _PinYin;
/// <summary>拼音</summary>
[DisplayName("拼音")]
[Description("拼音")]
[DataObjectField(false, false, true, 50)]
[BindColumn("PinYin", "拼音", "")]
public String? PinYin { get => _PinYin; set { if (OnPropertyChanging("PinYin", value)) { _PinYin = value; OnPropertyChanged("PinYin"); } } }
private String? _JianPin;
/// <summary>简拼</summary>
[DisplayName("简拼")]
[Description("简拼")]
[DataObjectField(false, false, true, 50)]
[BindColumn("JianPin", "简拼", "")]
public String? JianPin { get => _JianPin; set { if (OnPropertyChanging("JianPin", value)) { _JianPin = value; OnPropertyChanged("JianPin"); } } }
private String? _TelCode;
/// <summary>区号。电话区号</summary>
[DisplayName("区号")]
[Description("区号。电话区号")]
[DataObjectField(false, false, true, 50)]
[BindColumn("TelCode", "区号。电话区号", "")]
public String? TelCode { get => _TelCode; set { if (OnPropertyChanging("TelCode", value)) { _TelCode = value; OnPropertyChanged("TelCode"); } } }
private String? _ZipCode;
/// <summary>邮编。邮政编码</summary>
[DisplayName("邮编")]
[Description("邮编。邮政编码")]
[DataObjectField(false, false, true, 50)]
[BindColumn("ZipCode", "邮编。邮政编码", "")]
public String? ZipCode { get => _ZipCode; set { if (OnPropertyChanging("ZipCode", value)) { _ZipCode = value; OnPropertyChanged("ZipCode"); } } }
private Double _Longitude;
/// <summary>经度</summary>
[DisplayName("经度")]
[Description("经度")]
[DataObjectField(false, false, false, 0)]
[BindColumn("Longitude", "经度", "")]
public Double Longitude { get => _Longitude; set { if (OnPropertyChanging("Longitude", value)) { _Longitude = value; OnPropertyChanged("Longitude"); } } }
private Double _Latitude;
/// <summary>纬度</summary>
[DisplayName("纬度")]
[Description("纬度")]
[DataObjectField(false, false, false, 0)]
[BindColumn("Latitude", "纬度", "")]
public Double Latitude { get => _Latitude; set { if (OnPropertyChanging("Latitude", value)) { _Latitude = value; OnPropertyChanged("Latitude"); } } }
private String? _GeoHash;
/// <summary>地址编码。字符串前缀相同越多地理距离越近8位精度19米6位610米</summary>
[DisplayName("地址编码")]
[Description("地址编码。字符串前缀相同越多地理距离越近8位精度19米6位610米")]
[DataObjectField(false, false, true, 50)]
[BindColumn("GeoHash", "地址编码。字符串前缀相同越多地理距离越近8位精度19米6位610米", "")]
public String? GeoHash { get => _GeoHash; set { if (OnPropertyChanging("GeoHash", value)) { _GeoHash = value; OnPropertyChanged("GeoHash"); } } }
private Boolean _Enable;
/// <summary>启用</summary>
[DisplayName("启用")]
[Description("启用")]
[DataObjectField(false, false, false, 0)]
[BindColumn("Enable", "启用", "")]
public Boolean Enable { get => _Enable; set { if (OnPropertyChanging("Enable", value)) { _Enable = value; OnPropertyChanged("Enable"); } } }
private DateTime _CreateTime;
/// <summary>创建时间</summary>
[Category("扩展")]
[DisplayName("创建时间")]
[Description("创建时间")]
[DataObjectField(false, false, true, 0)]
[BindColumn("CreateTime", "创建时间", "")]
public DateTime CreateTime { get => _CreateTime; set { if (OnPropertyChanging("CreateTime", value)) { _CreateTime = value; OnPropertyChanged("CreateTime"); } } }
private DateTime _UpdateTime;
/// <summary>更新时间</summary>
[Category("扩展")]
[DisplayName("更新时间")]
[Description("更新时间")]
[DataObjectField(false, false, true, 0)]
[BindColumn("UpdateTime", "更新时间", "")]
public DateTime UpdateTime { get => _UpdateTime; set { if (OnPropertyChanging("UpdateTime", value)) { _UpdateTime = value; OnPropertyChanged("UpdateTime"); } } }
private String? _Remark;
/// <summary>备注</summary>
[Category("扩展")]
[DisplayName("备注")]
[Description("备注")]
[DataObjectField(false, false, true, 500)]
[BindColumn("Remark", "备注", "")]
public String? Remark { get => _Remark; set { if (OnPropertyChanging("Remark", value)) { _Remark = value; OnPropertyChanged("Remark"); } } }
#endregion
#region
/// <summary>拷贝模型对象</summary>
/// <param name="model">模型</param>
public void Copy(IArea model)
{
ID = model.ID;
Name = model.Name;
FullName = model.FullName;
ParentID = model.ParentID;
Level = model.Level;
Kind = model.Kind;
English = model.English;
PinYin = model.PinYin;
JianPin = model.JianPin;
TelCode = model.TelCode;
ZipCode = model.ZipCode;
Longitude = model.Longitude;
Latitude = model.Latitude;
GeoHash = model.GeoHash;
Enable = model.Enable;
CreateTime = model.CreateTime;
UpdateTime = model.UpdateTime;
Remark = model.Remark;
}
#endregion
#region /
/// <summary>获取/设置 字段值</summary>
/// <param name="name">字段名</param>
/// <returns></returns>
public override Object? this[String name]
{
get => name switch
{
"ID" => _ID,
"Name" => _Name,
"FullName" => _FullName,
"ParentID" => _ParentID,
"Level" => _Level,
"Kind" => _Kind,
"English" => _English,
"PinYin" => _PinYin,
"JianPin" => _JianPin,
"TelCode" => _TelCode,
"ZipCode" => _ZipCode,
"Longitude" => _Longitude,
"Latitude" => _Latitude,
"GeoHash" => _GeoHash,
"Enable" => _Enable,
"CreateTime" => _CreateTime,
"UpdateTime" => _UpdateTime,
"Remark" => _Remark,
_ => base[name]
};
set
{
switch (name)
{
case "ID": _ID = value.ToInt(); break;
case "Name": _Name = Convert.ToString(value); break;
case "FullName": _FullName = Convert.ToString(value); break;
case "ParentID": _ParentID = value.ToInt(); break;
case "Level": _Level = value.ToInt(); break;
case "Kind": _Kind = Convert.ToString(value); break;
case "English": _English = Convert.ToString(value); break;
case "PinYin": _PinYin = Convert.ToString(value); break;
case "JianPin": _JianPin = Convert.ToString(value); break;
case "TelCode": _TelCode = Convert.ToString(value); break;
case "ZipCode": _ZipCode = Convert.ToString(value); break;
case "Longitude": _Longitude = value.ToDouble(); break;
case "Latitude": _Latitude = value.ToDouble(); break;
case "GeoHash": _GeoHash = Convert.ToString(value); break;
case "Enable": _Enable = value.ToBoolean(); break;
case "CreateTime": _CreateTime = value.ToDateTime(); break;
case "UpdateTime": _UpdateTime = value.ToDateTime(); break;
case "Remark": _Remark = Convert.ToString(value); break;
default: base[name] = value; break;
}
}
}
#endregion
#region
#endregion
#region
/// <summary>根据编码查找</summary>
/// <param name="id">编码</param>
/// <returns>实体对象</returns>
public static Area? FindByID(Int32 id)
{
if (id < 0) return null;
// 实体缓存
if (Meta.Session.Count < 1000) return Meta.Cache.Find(e => e.ID == id);
// 单对象缓存
return Meta.SingleCache[id];
//return Find(_.ID == id);
}
/// <summary>根据父级查找</summary>
/// <param name="parentId">父级</param>
/// <returns>实体列表</returns>
public static IList<Area> FindAllByParentID(Int32 parentId)
{
if (parentId < 0) return [];
// 实体缓存
if (Meta.Session.Count < 1000) return Meta.Cache.FindAll(e => e.ParentID == parentId);
return FindAll(_.ParentID == parentId);
}
/// <summary>根据名称查找</summary>
/// <param name="name">名称</param>
/// <returns>实体列表</returns>
public static IList<Area> FindAllByName(String? name)
{
if (name == null) return [];
// 实体缓存
if (Meta.Session.Count < 1000) return Meta.Cache.FindAll(e => e.Name.EqualIgnoreCase(name));
return FindAll(_.Name == name);
}
/// <summary>根据拼音查找</summary>
/// <param name="pinYin">拼音</param>
/// <returns>实体列表</returns>
public static IList<Area> FindAllByPinYin(String? pinYin)
{
if (pinYin == null) return [];
// 实体缓存
if (Meta.Session.Count < 1000) return Meta.Cache.FindAll(e => e.PinYin.EqualIgnoreCase(pinYin));
return FindAll(_.PinYin == pinYin);
}
/// <summary>根据简拼查找</summary>
/// <param name="jianPin">简拼</param>
/// <returns>实体列表</returns>
public static IList<Area> FindAllByJianPin(String? jianPin)
{
if (jianPin == null) return [];
// 实体缓存
if (Meta.Session.Count < 1000) return Meta.Cache.FindAll(e => e.JianPin.EqualIgnoreCase(jianPin));
return FindAll(_.JianPin == jianPin);
}
/// <summary>根据地址编码查找</summary>
/// <param name="geoHash">地址编码</param>
/// <returns>实体列表</returns>
public static IList<Area> FindAllByGeoHash(String? geoHash)
{
if (geoHash == null) return [];
// 实体缓存
if (Meta.Session.Count < 1000) return Meta.Cache.FindAll(e => e.GeoHash.EqualIgnoreCase(geoHash));
return FindAll(_.GeoHash == geoHash);
}
#endregion
#region
/// <summary>取得地区字段信息的快捷方式</summary>
public partial class _
{
/// <summary>编码。行政区划编码</summary>
public static readonly Field ID = FindByName("ID");
/// <summary>名称</summary>
public static readonly Field Name = FindByName("Name");
/// <summary>全名</summary>
public static readonly Field FullName = FindByName("FullName");
/// <summary>父级</summary>
public static readonly Field ParentID = FindByName("ParentID");
/// <summary>层级</summary>
public static readonly Field Level = FindByName("Level");
/// <summary>类型。省市县,自治州等</summary>
public static readonly Field Kind = FindByName("Kind");
/// <summary>英文名</summary>
public static readonly Field English = FindByName("English");
/// <summary>拼音</summary>
public static readonly Field PinYin = FindByName("PinYin");
/// <summary>简拼</summary>
public static readonly Field JianPin = FindByName("JianPin");
/// <summary>区号。电话区号</summary>
public static readonly Field TelCode = FindByName("TelCode");
/// <summary>邮编。邮政编码</summary>
public static readonly Field ZipCode = FindByName("ZipCode");
/// <summary>经度</summary>
public static readonly Field Longitude = FindByName("Longitude");
/// <summary>纬度</summary>
public static readonly Field Latitude = FindByName("Latitude");
/// <summary>地址编码。字符串前缀相同越多地理距离越近8位精度19米6位610米</summary>
public static readonly Field GeoHash = FindByName("GeoHash");
/// <summary>启用</summary>
public static readonly Field Enable = FindByName("Enable");
/// <summary>创建时间</summary>
public static readonly Field CreateTime = FindByName("CreateTime");
/// <summary>更新时间</summary>
public static readonly Field UpdateTime = FindByName("UpdateTime");
/// <summary>备注</summary>
public static readonly Field Remark = FindByName("Remark");
static Field FindByName(String name) => Meta.Table.FindByName(name);
}
/// <summary>取得地区字段名称的快捷方式</summary>
public partial class __
{
/// <summary>编码。行政区划编码</summary>
public const String ID = "ID";
/// <summary>名称</summary>
public const String Name = "Name";
/// <summary>全名</summary>
public const String FullName = "FullName";
/// <summary>父级</summary>
public const String ParentID = "ParentID";
/// <summary>层级</summary>
public const String Level = "Level";
/// <summary>类型。省市县,自治州等</summary>
public const String Kind = "Kind";
/// <summary>英文名</summary>
public const String English = "English";
/// <summary>拼音</summary>
public const String PinYin = "PinYin";
/// <summary>简拼</summary>
public const String JianPin = "JianPin";
/// <summary>区号。电话区号</summary>
public const String TelCode = "TelCode";
/// <summary>邮编。邮政编码</summary>
public const String ZipCode = "ZipCode";
/// <summary>经度</summary>
public const String Longitude = "Longitude";
/// <summary>纬度</summary>
public const String Latitude = "Latitude";
/// <summary>地址编码。字符串前缀相同越多地理距离越近8位精度19米6位610米</summary>
public const String GeoHash = "GeoHash";
/// <summary>启用</summary>
public const String Enable = "Enable";
/// <summary>创建时间</summary>
public const String CreateTime = "CreateTime";
/// <summary>更新时间</summary>
public const String UpdateTime = "UpdateTime";
/// <summary>备注</summary>
public const String Remark = "Remark";
}
#endregion
}