假设您没有使用 ORM,您最好使用repository pattern,正如@DarrenYoung 评论和@axlj 提供的答案。您不应该将数据层与应用程序层紧密结合,这种模式会阻止您这样做。
但是,如果您实际上只是想模拟数据库表,则可以使用 DataSet 和 DataTable 类,它们分别提供内存中数据库和表的数据结构。
创建表格就这么简单:
DataTable myTable = new DataTable("myTable");
DataColumn[] key = new DataColumn[4];
key[0] = new DataColumn("Company", typeof(string));
key[1] = new DataColumn("State", typeof(string));
key[2] = new DataColumn("Type", typeof(string));
key[3] = new DataColumn("Number", typeof(int));
myTable.Add(key[0]);
myTable.Add(key[1]);
myTable.Add(key[2]);
myTable.Add(key[3]);
myTable.Add(new DataColumn("Column6", typeof(string)));
myTable.Add(new DataColumn("Column7", typeof(string)));
myTable.Add(new DataColumn("Column8", typeof(string)));
myTable.Add(new DataColumn("Column9", typeof(string)));
myTable.Add(new DataColumn("Column10", typeof(string)));
myTable.PrimaryKey = key;
您可以使用 DataTables 做更多事情,但这只是设置它所需的基础知识。此外,您提到HashTables 只能有一个键,但是您可以使用Tuple 作为键来连接多个值,例如:
var myHashTable = new HashSet<Tuple<string,string,string,int>, object>();
//Create a key
var key1 = Tuple.Create<string,string,string,int>("blah INC", "NY", "blah", 15);
myHashTable.Add(key1, myObject);