Добавить новое свойство в дозвуковой частичный класс - PullRequest
0 голосов
/ 07 ноября 2010

Я добавил новый столбец (DateCreated) в таблицу (Activity) в sqlserver.и я использую дозвуковую версию 2.0, как я могу добавить этот столбец как свойство в дозвуковом частичном классе, чтобы я мог вставить и обновить значение столбца «DateCreated».DateCreated будет предоставлен пользователем из графического интерфейса.

Ниже приведен код, который я использую, но он вставляет NULL и извлекает NULL из базы данных.

public partial class ActivityInscription 
{

   public struct Columns
   {
        public static string IsInMixedList = @"IsInMixedList";
   }
   public bool? IsInMixedList
   {
       get;
       set;
   }

}

Пожалуйста, помогите мнерешить эту проблему.

Ответы [ 2 ]

1 голос
/ 08 ноября 2010

Если вы добавили столбец в базу данных, просто перестройте DAL. Он подберет новый столбец и добавит его в дозвуковой DAL. В вашем случае нет оснований для частичного занятия. Это будет работать при условии, что таблица «Activity» является частью вашего дозвукового списка (includeTableList) таблиц в файле конфигурации.

0 голосов
/ 09 ноября 2010

Вот решение, которое я использовал, и оно работает:

публичный частичный класс Activity {

    public DateTime? DateCreated
    {
        get;
        set;
    }

    protected override void BeforeInsert()
    {
        TableSchema.Table tblSchema = Schema;

        TableSchema.TableColumn ccDateCreated = new TableSchema.TableColumn(tblSchema);

            ccrDateCreated.ColumnName = "DateCreated";
            ccDateCreated.DataType = DbType.DateTime;
            ccDateCreated.MaxLength = 0;
            ccDateCreated.AutoIncrement = false;
            ccDateCreated.IsNullable = false;
            ccDateCreated.IsPrimaryKey = false;
            ccDateCreated.IsForeignKey = false;
            ccDateCreated.IsReadOnly = false;
            ccDateCreated.DefaultSetting = @"";
            ccDateCreated.ForeignKeyTableName = "";

        if (!tblSchema.Columns.Contains("DateCreated"))
        {
            tblSchema.Columns.Add(ccDateCreated); 
        }

        if (this.GetSchema().Columns.Contains("DateCreated"))
            this.SetColumnValue(Columns.DateCreated, DateCreated);

        base.BeforeInsert();
    }

}

Теперь все работает нормально и вставляет значения, которые я предоставляю из графического интерфейса.

...