-2
#region Properties
public int ID
{
    get;
    set;
}
public string Name
{
    get;
    set;
}
public string MetaTitle
{
    get;
    set;
}
public string MetaDescription
{
    get;
    set;
}
public virtual int WebsiteID
{
    get;
    set;    
}
public DateTime TimeStamp
{
    get;
    set;
}
#endregion Properties

#region Methods 
public void Insert()
{
    string sqlString = "INSERT INTO Pages ([name], [value], [meta_title], [meta_description], [website_id]) " +
        "VALUES (@Name, @Image, @Description, @MetaTitle, @MetaDescription, @WebsiteID);";
    SqlConnection sqlConnection =
        new SqlConnection(WebConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
    using (SqlCommand sqlCommand = new SqlCommand(sqlString, sqlConnection))
    {
        sqlCommand.Parameters.AddWithValue("@Name", this.Name);
        sqlCommand.Parameters.AddWithValue("@Image", this.Image);
        sqlCommand.Parameters.AddWithValue("@Description", this.Description);
        sqlCommand.Parameters.AddWithValue("@MetaTitle", this.MetaTitle);
        sqlCommand.Parameters.AddWithValue("@MetaDescription", this.MetaDescription);
        sqlCommand.Parameters.AddWithValue("@WebsiteID", this.WebsiteID);
        try
        {
            sqlConnection.Open();
            sqlCommand.ExecuteNonQuery();
            sqlConnection.Close();
            sqlConnection.Dispose();
        }
        catch (SqlException e)
        {
        }
    }
}

两个问题:

我有另一个类Section,它将派生自上面称为 Page 的类。但是,Section不会有 WebsiteID,而是会有 PageID。它们都是整数,但我如何更改属性名称是派生类。

第二件事是,我应该使用另一种方法override吗?如果没有,实现这些要求的最佳方式是什么?Insert()sqlString

提前致谢。

4

2 回答 2

0

我有另一个名为 Section 的类,它将派生自上面名为 Page 的类。但是,Section 不会有 WebsiteID,而是会有 PageID。它们都是整数,但我如何更改属性名称是派生类。

错误是您的页面包含部分对象,因此您不必从页面派生部分:页面必须具有部分的集合

class Page
{
     private Section[] sections;
     public Section[] Sections {get;set;}
}
于 2012-08-19T00:46:33.347 回答
0

我认为你的继承权可能有点偏离。“部分”不是“页面”,是吗?

为什么不使用Content具有以下属性的基类,称为或类似的东西:

public int ID { get; set; }
public string Name { get; set; }
public string MetaTitle { get; set; }
public string MetaDescription { get; set; }
public DateTime TimeStamp { get; set; }

Page扩展它添加WebsiteID和部分添加PageID.

但我也建议将实体模型与数据访问分开。使用 Entity Framework 或 NHibernate 之类的东西来为您处理持久性将使您不必手动编写该代码。

That way you could have a more connected model, where Section actually references a Page entity, and not handle IDs manually. Also Page could contain Sections in the same manner (like a List<Section>), and you'd possibly have a cleaner model.

于 2012-08-19T00:48:50.230 回答