【发布时间】:2020-10-16 08:36:01
【问题描述】:
我正在构建我的第一个剃须刀应用程序,并且想知道我是否以一种好的方式组织了我的文件(如果其他人要查看我的代码会很清楚,并且不会抑制性能)。我主要关心的是我计划在整个应用程序中使用的类库函数。对于那些我一直在“App_Code”文件夹中存储字符串格式化函数等的人——例如,我将以下函数存储在一个类中:
public static decimal? ToDecimal(object? val) => (val is DBNull) ? (decimal?)null : Convert.ToDecimal(val);
此外,我计划使用“Helpers”文件夹来存储需要在整个应用程序中重复的任何 HTML。这些是放置这类东西的正确位置吗?
然后我更大的问题是数据检索/存储。假设我有一个与 SQL 表相关联的“位置”类。如果我使用 EF,检索和存储数据是一个命令,但在我的情况下,我正在编写自己的函数来获取数据。现在我在位置的索引页面上有所有代码(检索所有位置和各种链接文件),但现在我需要在编辑和查看页面上为单个位置重用这些功能。存储这些通用函数(例如 GetLocation(id)、GetAllLocations 等)的正确位置在哪里?只创建一个随机的“库”文件夹并将它们放在一个类中,为我需要与之交互的每个类都有一个专用文件是否有意义?直接扔到 App_Code 里?
最后一个很好的例子是这个函数,我从数据库中检索所有状态。我预计需要在多个页面上执行此操作——我应该将它存储在哪里?
private void GetStates()
{
int id;
string DbQuery = "SELECT StateId,Abbreviation,StateName " +
"FROM [dbo].[State] " +
"WHERE RowStatus<>0 ";
States = new Dictionary<int, State>();
SqlCommand DbCommand = new SqlCommand(DbQuery, DbConnection);
SqlDataReader dataReader = DbCommand.ExecuteReader();
while (dataReader.Read())
{
id = Convert.ToInt32(dataReader[0]);
States.Add(id, new State()
{
StateId = id,
Abbreviation = Convert.ToString(dataReader[1]),
StateName = Convert.ToString(dataReader[2])
});
}
dataReader.Close();
DbCommand.Dispose();
}
【问题讨论】:
标签: razor razor-pages