gpt4 book ai didi

nhibernate - 让 Fluent NHibernate 与 SQLite 一起工作

转载 作者:IT王子 更新时间:2023-10-29 06:20:32 25 4
gpt4 key购买 nike

我确定有些简单的事情我还没有完成,但我正在尝试让 Fluent NHibernate 在我的机器上与 Sqlite 一起工作。

我使用 NuGet 下载了 fluent nhibernate 并添加了以下实体和映射:

public class Customer
{
public virtual string CustomerCode { get; set; }
public virtual string Name { get; set; }
}

public class CustomerMap : ClassMap<Customer>
{
public CustomerMap ()
{
Id(x => x.CustomerCode);
Map(x => x.Name);
Table("tblCustomer");
}
}

然后按照流利的入门指南,我将以下代码添加到 Windows Command 项目中:

class Program
{
static void Main(string[] args)
{

var sessionFactory = CreateSessionFactory();

using (var session = sessionFactory.OpenSession())
{
using (var transaction = session.BeginTransaction())
{

var customer = new Customer { CustomerCode = "123", Name = "Bob" };
session.SaveOrUpdate(customer);
transaction.Commit();
}
}
}

private static ISessionFactory CreateSessionFactory()
{
return Fluently.Configure()
.Database(
SQLiteConfiguration.Standard
.UsingFile("firstProject.db")
)
.Mappings(m =>
m.FluentMappings.AddFromAssemblyOf<Program>())
.ExposeConfiguration(BuildSchema)
.BuildSessionFactory();
}

private static void BuildSchema(Configuration config)
{
// delete the existing db on each run
if (File.Exists("firstProject.db"))
File.Delete("firstProject.db");

// this NHibernate tool takes a configuration (with mapping info in)
// and exports a database schema from it
new SchemaExport(config)
.Create(false, true);
}
}

最后我使用 NuGet 添加了 Sqlite dll.. 但是在尝试运行该程序时出现以下错误:

顶级异常:

An invalid or incomplete configuration was used while creating a SessionFactory. Check PotentialReasons collection, and InnerException for more detail.

下一个异常(exception):

Could not create the driver from NHibernate.Driver.SQLite20Driver, NHibernate, Version=3.1.0.4000, Culture=neutral, PublicKeyToken=aa95f207798dfdb4.

最内层异常:

Unable to find the requested .Net Framework Data Provider.  It may not be installed.

这是它试图创建 session 工厂的时候。

有人可以帮忙吗?我运行的是 32 位计算机?

谢谢

戴夫

最佳答案

你需要两件事:

  1. 在您的项目中引用 System.Data.SQLite
  2. 包括 sqlite3.dll,但您也不能添加对 sqlite3.dll 的引用,因为它是一个非托管 dll。只需将其作为元素添加到解决方案并将其设置为复制到输出目录。

关于nhibernate - 让 Fluent NHibernate 与 SQLite 一起工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5665287/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com