SQL中的最佳实践对象
本文关键字:对象 最佳 SQL | 更新日期: 2023-09-27 18:30:00
我试着搜索,但找不到正确的答案。我正在创建一个包含许多不同对象的应用程序。这些对象的数据保存在MSSQL数据库中。获取数据的最佳方式是什么?
为了简单起见,我将在这里使用两个对象:ItemObject用户对象
它们都有一个构造函数,可以从数据库中获取数据:
public ItemObject(int ID) //same one for UserObject
{
//Code to get the data from the database for this particular item
}
ItemObject有一个名为CreatedBy的属性,它是一个UserObject。
现在的问题是,创建ItemObject的最佳方式是什么?我有两种可能的解决方案:
解决方案1:
public ItemObject(int ID)
{
DataTable dt = dal.GetDataTable("SELECT TOP 1 * FROM Items WHERE ID = @ID")
this.CreatedBy = new UserObject((int)dt.rows[0]["UserID"])
}
解决方案#2
public ItemObject(int ID)
{
DataTable dt = dal.GetDataTable("SELECT TOP 1 * FROM Items INNER JOIN Users ON Items.CreatedBy = Users.ID WHERE Items.ID = @ID")
this.CreatedBy = new UserObject((int)dt.rows[0]["UserID"], dt.rows[0]["Username"].ToString())
}
public UserObject(int ID, string Username)
{
this.ID = ID;
this.Username = Username;
}
在解决方案#1中,我要求两次数据,但在解决方案2中,我要求一次数据。尽管解决方案#1更"干净",更易于阅读。
经史蒂文更正后编辑。
我会选择解决方案二。从我的角度来看,解决方案1是不可接受的,尽管它"更干净"。我认为对物体的阅读没有最佳的实践。为此,我非常喜欢实体框架。