繁体   English   中英

SQL的最佳实践对象

[英]Best practice Objects from SQL

我尝试搜索,但找不到正确的答案。 我正在创建一个包含许多不同对象的应用程序。 这些对象的数据保存在MSSQL数据库中。 取出数据的最佳方法是什么?

为简单起见,我将在此处使用两个对象:ItemObject UserObject

它们都具有一个构造函数,该构造函数将从数据库中获取数据:

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更“干净”且易于阅读。

Steves更正后进行编辑。

我会选择第二种解决方案。 从我的角度来看,解决方案1虽然“更干净”,但却是不可接受的。 而且我认为没有最佳实践来读取对象。 我为此非常喜欢实体框架。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM