内存数据库 - 如何生成 MVC 模型 类?

In-Memory Database - How to Generate MVC Model classes?

我对 MVC4 ASP.NET 和内存数据库非常陌生。如果我的回答过于基础和愚蠢,我深表歉意。 我创建了一个 ASP.net MVC 应用程序,它使用

使用内存中的 DB(SQLite3)
SQLiteConnection con=new SQLiteConnection(Data Source=:memory:;Version=3;New=True;);

我想知道如果数据库及其 table 已创建 "in-memory",那么模型及其 类 将如何生成以便我可以在 Controller/Views。 In Memory 数据库将在运行时从某些 XML.

填充

编辑

下面是如何在内存中创建 table

 using (SQLiteConnection connection = new SQLiteConnection("Data Source=:memory:;"))
 {
     connection.Open();
     connection.CreateModule(new SQLiteModuleEnumerable("sampleModule", new string[] { "one", "two", "three" }));
     using (SQLiteCommand command = connection.CreateCommand())
     {
         command.CommandText ="CREATE VIRTUAL TABLE t1 USING sampleModule;";
         command.ExecuteNonQuery();
     }
     using (SQLiteCommand command = connection.CreateCommand())
     {
         command.CommandText = "SELECT * FROM t1;";
         using (SQLiteDataReader dataReader = command.ExecuteReader())
         {
             while (dataReader.Read())
                 Console.WriteLine(dataReader[0].ToString());
         }
     }
     connection.Close();
 }

这是 C# SQLite 库:http://system.data.sqlite.org/index.html/doc/trunk/www/index.wiki

解决这个问题的低技术方法是生成模型类。只需手动创建它们以对应于您希望在视图中处理的数据库部分。请记住,模型主要用于视图的使用——它们应该强调控制器需要传递给视图的那些东西,以及视图需要传递回控制器的那些东西。如果他们碰巧反映了数据库结构,那就是一个奖励。

可能有一些更复杂的处理方式,但我没有使用过。您可以创建一个 Entity Framework Code First 模型,并使用数据库迁移来实际创建您的内存表。您可能会变得懒惰,并使用与传递给视图的模型完全相同的 类。

最好让 Entity Framework 类 担心 Entity Framework,让模型 类 担心视图。然后使用像 AutoMapper 这样的工具在传递给视图的模型和传递给数据库的 entity framework 类 之间复制数据。