Я уверен, что есть что-то простое, чего я не делал, но я пытаюсь заставить Fluent NHibernate работать с Sqlite на моей машине.
Я использовал NuGet для бесплатного скачивания 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);
}
}
Наконец, я добавил dll Sqlite с помощью NuGet.. однако при попытке запустить программу я получаю следующую ошибку:
Верхнее исключение:
An invalid or incomplete configuration was used while creating a SessionFactory. Check PotentialReasons collection, and InnerException for more detail.
Следующее исключение:
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.
Это когда он пытается создать сеанс factory.
Может ли кто-нибудь помочь с этим? Я запускаю 32-битную машину?
Спасибо
Dave