如何在PetaPoco中使用SQLite

时间:2018-02-05 19:03:18

标签: asp.net-mvc sqlite petapoco

我尝试在MVC5上使用PetaPoco和SQLite。我创建了一个模型来进行映射。

namespace LittleDemo.Models.UserModel
{
    [PetaPoco.TableName("User")]
    [PetaPoco.PrimaryKey("UserId", AutoIncrement = true)]
    public class User
    {
        [Column]
        public int UserId { get; set; }

        [Column]
        public string Name { get; set; }
    }
}

然后我创建一个控制器文件

public ActionResult UserView()
        {
            ViewBag.Message = "Your User page.";

            var dbUser = new PetaPoco.Database("sqlite");

            var userA = new User {Name = "A"};
            dbUser.Save(userA);
            return View();
        }

创建数据库并放入一些数据。然后创建一个视图以显示所有数据列表。但它返回错误消息“找不到用户表”。 如何使用PetaPoco分配表格。

1 个答案:

答案 0 :(得分:0)

我投入了大量时间让它发挥作用,但我一无所获。

您可以使用https://github.com/schotime/NPoco

实现相同目标

这里有Nuget https://www.nuget.org/packages/NPoco/

你需要做一些努力才能使它发挥作用。

打开 app.config / web.config

第1步:

安装https://www.nuget.org/packages/NPoco/

第2步:

  <system.data>
  <DbProviderFactories>
  <remove invariant="System.Data.SQLite.EF6" />
  <add name="SQLite Data Provider (Entity Framework 6)" invariant="System.Data.SQLite.EF6" description=".NET Framework Data Provider for SQLite (Entity Framework 6)" type="System.Data.SQLite.EF6.SQLiteProviderFactory, System.Data.SQLite.EF6" />
  <remove invariant="System.Data.SQLite" /><add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".NET Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
  </DbProviderFactories>
  </system.data>

第3步:

<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source = C:\db\test.db;" providerName="System.Data.SQLite" />
</connectionStrings>

第4步:

 public class User
{
    public int Id { get; set; }
    public string Email { get; set; }
}

static void Main(string[] args)
{
   var config = ConfigurationManager.ConnectionStrings["DefaultConnection"];
   var db = new MyDb(config.ConnectionString, config.ProviderName);
   List<User> users = db.Fetch<User>(string.Empty);
   Console.WriteLine(users.Count);
}

public class MyDb : NPoco.Database
{
    public MyDb()
        : base("DefaultConnection")
    {
    }

    public MyDb(string connectionString, string providerName)
        : base(connectionString, providerName)
    {
    }
}

参考:     https://github.com/venkata-ramana/SQLiteSample

如果您有任何疑问,请告诉我,谢谢。