在亚音速部分类中添加新属性

时间:2010-11-07 12:48:47

标签: subsonic

我在sqlserver的表(Activity)中添加了一个新列(DateCreated)。 我正在使用亚音速2.0,如何将此列添加为亚音阶分部类中的属性,以便我可以插入并更新“DateCreated”列的值。 DateCreated将由用户从GUI提供。

以下是我使用的代码,但它插入了NULL&从数据库中检索NULL。

public partial class ActivityInscription 
{

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

}

请任何人帮我解决此问题。

2 个答案:

答案 0 :(得分:1)

如果您将列添加到数据库,则只需重建DAL。它将拾取新列并将其添加到亚音速DAL。您的案例中没有理由使用Partial类。这将有效,前提是表“Activity”是配置文件中表的亚音速列表(includeTableList)的一部分。

答案 1 :(得分:0)

以下是我使用的解决方案,它正在运行:

公共部分类活动 {

    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();
    }

}

现在它工作正常&插入我从GUI提供的值。