0

我有自己的数据类型,可用于具有各种属性来操作值的数据库,例如:

 First: original value
 IsNull: is the current state null (no value in Data)
 IsFirstNull: was the initial state of the object null
 Changed: has the value changed since the initial value was set.
 SetNull(): set the object to null
 SetFirstNull: set the initial value to null
 Reset: set values all to original settings.

每个对象都有这些。每种标准变量都有一个对象,例如:

 int - IntType
 string - StringType
 bool - BoolType

我设置这些类型来处理我从表中读取的每个变量的不同状态以及处理空值。总是很难判断一个值是否为空,或者在最初读取该值时是否为空,所以我会知道如何将其写回或该值是否已更改。有时,当您从表中读取数据时,您需要知道原始值是多少。

所以我只将这些用于我从表中读取的数据,这样我就可以跟踪我最初获得的值,包括空值,并跟踪更改以及重置为原始值。

我希望能够通过属性访问数据,所以我将其设置为:

 public class LoginDTO
    {
        public IntType loginID = new IntType();
        public StringType userName = new StringType();

        #region Properties

        public object LoginID
        {
            get
            {
                object value = null;
                return NullHandler.SetDbObjectValueFromValue(loginID, ref value);
            }
            set
            {
                NullHandler.GetValueFromDbObject(value, ref loginID);
            }
        }

        public object UserName
        {
            get
            {
                object value = null;
                return NullHandler.SetDbObjectValueFromValue(userName, ref value);
            }
            set
            {
                NullHandler.GetValueFromDbObject(value, ref userName);
            }
       } 

要访问数据,我可以做类似的事情

 loginDto.UserName

但是要访问(设置或获取) IsNull 属性,我不能真正为每个变量使用一个属性。

通常,访问权限类似于:

If( loginDto.IsNull)...

or 

loginDto.SetNull();

但是在一个类中,可以有许多来自表的变量,一个 Person 表可能有 20 或 30 个字段,因此有 20 或 30 个字段以及这些字段的 20 或 30 个属性。

我正在考虑在类中设置一个方法,我将在其中传递变量的名称,例如:

SetNull("loginDto") 并且能够以某种方式设置 loginDto 变量的方法。

但不确定我将如何访问变量来更改每个变量的 IsNull 属性。

我将如何传递一个文字(即 SetNull("loginID") 或 SetNull("userName")),以便该方法知道要设置哪个变量?

还是有更好的方法来做到这一点?

我正在考虑放弃整个属性的想法,只设置每个变量并直接访问它们,因为属性和方法已经在 DataType 类中设置好了。只是通常最好使用属性从外部访问您的类变量。

谢谢,

汤姆

4

0 回答 0