Chúng tôi có một ứng dụng sử dụng NHibernate/FluentNHibernate với một MsSqlConfiguration.MsSql2008.ConnectionString
chỉ vào môi trường SQL của chúng tôi. Các máy chủ SQL có một vài cơ sở dữ liệu và chúng ta có thể kết nối với cơ sở dữ liệu khác nhau bằng cách sử dụng một quy ước như sau:Khi thử nghiệm NHibernate với một SQLite Trong cấu hình bộ nhớ, làm thế nào để bạn tạo một cơ sở dữ liệu khác?
public class FactseDatabaseConvention : IClassConvention
{
public void Apply(IClassInstance instance)
{
if (instance.EntityType.Namespace.EndsWith("Model.OtherEntities"))
{
instance.Schema("OtherDatabase.dbo");
}
}
}
này hoạt động và các truy vấn chính xác được tạo ra để truy cập OtherDatabase
. Vấn đề xảy ra khi chúng tôi muốn kiểm tra bằng cách sử dụng SQLiteConfiguration.Standard.InMemory()
với SessionFactory của chúng tôi. Các thử nghiệm Persistence thất bại khi SQLite đang chuẩn bị:
System.Data.SQLite.SQLiteException : SQL logic error or missing database
unknown database OtherDatabase
Đây là lệnh nó tạo ra:
create table OtherDatabse.dbo_my_other_entity_table (
Id UNIQUEIDENTIFIER not null,
... other properties
)
Có cách nào tôi có thể thay đổi của tôi SQLiteConfiguration
để có nó tạo ra 2 cơ sở dữ liệu trong bộ nhớ và, nếu vậy, làm thế nào? Hoặc tôi nên tạo một Phiên riêng biệt để thử nghiệm các thực thể khác này?
Cảm ơn @ jenson-button-event, điều này có thể hiệu quả. Trước khi tôi thử nó, bạn có bất kỳ thông tin nào bạn có thể chia sẻ trên giải pháp SQL cục bộ không? Tôi có thể muốn thử điều đó. – shanabus
Đây là phiên bản trong bộ nhớ của MSSQL Express 2012 được tạo cho các nhà phát triển. Đây là [mục nhập blog MSDN] (http://blogs.msdn.com/b/sqlexpress/archive/2011/07/12/introducing-localdb-a-better-sql-express.aspx) về nó và liên kết để [tải xuống MSSQL Express 2012] (http://msdn.microsoft.com/en-us/evalcenter/hh230763.aspx). Bạn cũng có thể nhận được nó thông qua một thuê bao MSDN nếu bạn có một. Chỉ cần tìm kiếm LocalDB trong tải xuống thuê bao MSDN. –