#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
的类,它将从上面的类中派生出来。但是,Section
不会有WebsiteID,而是会有PageID。它们都是整数,但我如何更改属性名称是派生类。
第二件事是,override
Insert()
方法应该使用另一个sqlString
吗?如果没有,实施此类要求的最佳方式是什么?
提前致谢。
答案 0 :(得分:0)
我有另一个名为Section的类,它将派生自该类 上面叫做Page。但是,Section不会有WebsiteID但会有 有一个PageID而不是。他们都是整数,但我该如何去做 更改属性名称是派生类。
错误是你的页面包含section对象,所以你不必从Page派生Section:Page必须有一个section的集合
class Page
{
private Section[] sections;
public Section[] Sections {get;set;}
}
答案 1 :(得分: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这样的东西来处理持久性会使您不必手动编写代码。
通过这种方式,您可以拥有更多连接模型,其中Section
实际引用Page
实体,而不是手动处理ID。同样Page
可以以相同的方式包含Sections
(例如List<Section>
),并且您可能拥有更清晰的模型。