Subsonic 向使用亚音速检索的现有对象添加特性

Subsonic 向使用亚音速检索的现有对象添加特性,subsonic,object,properties,polymorphism,Subsonic,Object,Properties,Polymorphism,我认为这更像是一个多态性问题,但它适用于亚音速表对象 事情是这样的(我喜欢这个): TblUser userObj=新的TblUser(1) 它用PK=1的所有好东西填充userObj的属性 现在,我想向现有用户对象添加更多属性,例如,accountnumber的ArrayList属性 我见过类似这样的问题——“将属性添加到现有对象…”,但在这种情况下,是否最建议创建一个用户包装器对象,然后创建一个TblUser属性类型,以及我自己的其他属性 好的,看来我又想出了一个解决办法,但是我仍然对向现有

我认为这更像是一个多态性问题,但它适用于亚音速表对象

事情是这样的(我喜欢这个):

TblUser userObj=新的TblUser(1)

它用PK=1的所有好东西填充userObj的属性

现在,我想向现有用户对象添加更多属性,例如,accountnumber的ArrayList属性

我见过类似这样的问题——“将属性添加到现有对象…”,但在这种情况下,是否最建议创建一个用户包装器对象,然后创建一个TblUser属性类型,以及我自己的其他属性


好的,看来我又想出了一个解决办法,但是我仍然对向现有对象添加属性的可能性感到好奇。

所有生成的亚音速类都是这样的,所以要向它们添加额外的属性/方法,只需在同一名称空间中创建自己的具有相同名称的分部类,这两个类将在编译时合并。例如,对于您的TblUser类:

public partial class TblUser
{
  public List<AccountNumber> AccountNumbers
  {
    get 
    {
      // Get and return the AccountNumbers 
    } 
  }
}
公共部分类TblUser
{
公开名单帐号
{
得到
{
//获取并返回帐号
} 
}
}

所有生成的亚音速类都是相同的,因此要向它们添加额外的属性/方法,只需在同一名称空间中创建自己的具有相同名称的分部类,这两个分部类将在编译时合并。例如,对于您的TblUser类:

public partial class TblUser
{
  public List<AccountNumber> AccountNumbers
  {
    get 
    {
      // Get and return the AccountNumbers 
    } 
  }
}
公共部分类TblUser
{
公开名单帐号
{
得到
{
//获取并返回帐号
} 
}
}

John,谢谢你的回答。但是,我正在用TblUser(userID)填充对象-很好。。。但是我的分部类中有一个问题:namespace my.DAL{public分部类TblUser:paytail.DAL.TblUserCard{public TblUser(){}public TblUser(long userID){moreValues=“more values!!!”;}私有字符串moreValues;公共字符串moreValues{get{return moreValues;}//set{moreValues=value;}}}}}}}eew。没有密码。下面是一件事:一旦传递了userID,TblUser()对象就会填充与用户相关的数据。问题是,当我在代码中引用TblUser时,它只看到MoreValues属性,而没有看到它的父属性。。。我有一个对象和一个名为UserDetails(long userID)的构造函数。UserDetails构造函数填充TblUser对象,该对象通过UserDetails中的TblUser UserObj属性公开。所以UserDetails.UserObj.FirstName(有点难看)和UserDetails.FullName——这是我自己的自定义属性。那么我该如何优化它呢?约翰,谢谢你的回答。但是,我正在用TblUser(userID)填充对象-很好。。。但是我的分部类中有一个问题:namespace my.DAL{public分部类TblUser:paytail.DAL.TblUserCard{public TblUser(){}public TblUser(long userID){moreValues=“more values!!!”;}私有字符串moreValues;公共字符串moreValues{get{return moreValues;}//set{moreValues=value;}}}}}}}eew。没有密码。下面是一件事:一旦传递了userID,TblUser()对象就会填充与用户相关的数据。问题是,当我在代码中引用TblUser时,它只看到MoreValues属性,而没有看到它的父属性。。。我有一个对象和一个名为UserDetails(long userID)的构造函数。UserDetails构造函数填充TblUser对象,该对象通过UserDetails中的TblUser UserObj属性公开。所以UserDetails.UserObj.FirstName(有点难看)和UserDetails.FullName——这是我自己的自定义属性。那么我该如何优化它呢?