C# c中类似临时表的东西#

C# c中类似临时表的东西#,c#,asp.net-mvc-3,C#,Asp.net Mvc 3,我有一个场景,需要使用不太可能改变但有助于实现业务逻辑的表格数据: Table Parent Child Relationship Allowed A B C True B A C False 每行代表一条业务规则。根据这个表,我需要用“关系”列的内容填充一个下拉控件。我可以在C#中使用某种数据结

我有一个场景,需要使用不太可能改变但有助于实现业务逻辑的表格数据:

Table

 Parent      Child         Relationship      Allowed
  A            B                 C            True
  B            A                 C            False

每行代表一条业务规则。根据这个表,我需要用“关系”列的内容填充一个下拉控件。我可以在C#中使用某种数据结构来存储这些表格数据,还是需要使用数据库表

我同意,如果这是您需要存储的所有数据,那么完整的数据库可能会被过度使用,因此,如果您真的愿意,理论上可以用C#对数据和结构进行硬编码,但在几乎所有情况下,这都不是一个好主意,即使它不太可能改变


至少将数据存储在一个小的XML/config文件中,这样,如果它确实发生了变化,您就不需要重新编译应用程序。

我同意,如果这是您需要存储的所有数据,那么完整的数据库可能会有过大的杀伤力,因此理论上您可以用C语言硬编码数据和结构,如果您真的想,但在几乎所有情况下,这都不是一个好主意——即使它不太可能改变


至少将数据存储在一个小的XML/config文件中,这样,如果数据确实发生了更改,您就不需要重新编译应用程序。

除非您需要跨会话持久保存此数据,否则不需要将其存储在数据库表中。从面向对象设计的角度来看,为什么不创建一个表示所需结构的对象,从而创建一个类呢。大概是这样的:

public class Relationship
{
    public string Name { get; set; }
    public string Parent { get; set; }
    public string Child { get; set; }
    public bool Allowed { get; set; }
}
// Definition
DataTable table = new DataTable();

DataColumn column = new DataColumn("Parent", typeof(string));
table.Columns.Add(column);

// Data
DataRow row = table.NewRow();
row["Parent"] = "A";
table.Rows.Add(row);

当然,请注意,我使用字符串,您可能希望使用它们自己的“类型”的其他对象。此外,请记住访问,以及什么应该和不应该被允许访问这些属性。。。这是一个故意简单的例子

除非需要跨会话持久化此数据,否则不需要将其存储在数据库表中。从面向对象设计的角度来看,为什么不创建一个表示所需结构的对象,从而创建一个类呢。大概是这样的:

public class Relationship
{
    public string Name { get; set; }
    public string Parent { get; set; }
    public string Child { get; set; }
    public bool Allowed { get; set; }
}
// Definition
DataTable table = new DataTable();

DataColumn column = new DataColumn("Parent", typeof(string));
table.Columns.Add(column);

// Data
DataRow row = table.NewRow();
row["Parent"] = "A";
table.Rows.Add(row);
当然,请注意,我使用字符串,您可能希望使用它们自己的“类型”的其他对象。此外,请记住访问,以及什么应该和不应该被允许访问这些属性。。。这是一个故意简单的例子

使用数据表:

您可以创建表格并按如下方式填充:

public class Relationship
{
    public string Name { get; set; }
    public string Parent { get; set; }
    public string Child { get; set; }
    public bool Allowed { get; set; }
}
// Definition
DataTable table = new DataTable();

DataColumn column = new DataColumn("Parent", typeof(string));
table.Columns.Add(column);

// Data
DataRow row = table.NewRow();
row["Parent"] = "A";
table.Rows.Add(row);
使用数据表:

您可以创建表格并按如下方式填充:

public class Relationship
{
    public string Name { get; set; }
    public string Parent { get; set; }
    public string Child { get; set; }
    public bool Allowed { get; set; }
}
// Definition
DataTable table = new DataTable();

DataColumn column = new DataColumn("Parent", typeof(string));
table.Columns.Add(column);

// Data
DataRow row = table.NewRow();
row["Parent"] = "A";
table.Rows.Add(row);

为什么不创建一个类来为您的数据建模?这些数据需要跨多个不同的页面访问,还是只需要一个带有下拉列表的页面就可以访问?为什么不创建一个类来为您的数据建模?这些数据需要跨多个不同的页面访问,还是只需要一个带有下拉列表的页面就可以访问?我认为除非“对象”需要放在数据库中,或者逻辑上绑定到另一个已经是表的项,否则表就是过度杀戮。以什么方式过度杀戮?记忆方面?只是从简单的角度来看真的!如果你能用POCO来表示你所需要的,你也可以这样做。我认为一个表是多余的,除非“对象”需要放在数据库中,或者逻辑上与另一个已经是表的项绑定。用什么方式多余?记忆方面?只是从简单的角度来看真的!如果你能用POCO来表示你需要什么,你也可以这样做。