我们再看ID关联情况下实体的设计:
/// <summary>
/// 单位实体
/// </summary>
public class Org
{
private int _OrgId;
/// <summary>
/// 单位id
/// </summary>
public int OrgId
{
get { return _OrgId; }
set { _OrgId = value; }
}
private string _OrgName;
/// <summary>
/// 单位名
/// </summary>
public string OrgName
{
get { return _OrgName; }
set { _OrgName = value; }
}
private int _ParentId;
/// <summary>
/// 父单位id
/// </summary>
public int ParentId
{
get { return _ParentId; }
set { _ParentId = value; }
}
}
/// 单位实体
/// </summary>
public class Org
{
private int _OrgId;
/// <summary>
/// 单位id
/// </summary>
public int OrgId
{
get { return _OrgId; }
set { _OrgId = value; }
}
private string _OrgName;
/// <summary>
/// 单位名
/// </summary>
public string OrgName
{
get { return _OrgName; }
set { _OrgName = value; }
}
private int _ParentId;
/// <summary>
/// 父单位id
/// </summary>
public int ParentId
{
get { return _ParentId; }
set { _ParentId = value; }
}
}
/// <summary>
/// 用户实体
/// </summary>
public class User
{
private int _UserId;
/// <summary>
/// 用户id
/// </summary>
public int UserId
{
get { return _UserId; }
set { _UserId = value; }
}
private int _orgId;
/// <summary>
/// 所属单位id
/// </summary>
public int OrgId
{
get { return _orgId; }
set { _orgId = value; }
}
private string _UserName;
/// <summary>
/// 用户名
/// </summary>
public string UserName
{
get { return _UserName; }
set { _UserName = value; }
}
}
/// 用户实体
/// </summary>
public class User
{
private int _UserId;
/// <summary>
/// 用户id
/// </summary>
public int UserId
{
get { return _UserId; }
set { _UserId = value; }
}
private int _orgId;
/// <summary>
/// 所属单位id
/// </summary>
public int OrgId
{
get { return _orgId; }
set { _orgId = value; }
}
private string _UserName;
/// <summary>
/// 用户名
/// </summary>
public string UserName
{
get { return _UserName; }
set { _UserName = value; }
}
}
首先从代码上,比上面的简单些吧。
这样的实体,虽然有那么一点不“面向对象”,但绝对避免了“面向对象”时遇到的问题。
我们这群人的工作,总是在 发现问题-〉解决问题-〉引起新的问题 -〉解决问题 中度过的。
OK,ID关联的实体设计方法同样遇到了新问题:我要处理多表的数据怎么办?我要跨表查询怎么办?