Entity framework LiteDB 的数据提供者
Entity framework data provider for LiteDB
我希望我的 entity framework Dbcontext class 与不同的 -2 数据库一起工作。它与 SQL 服务器、MySql、SQLite 使用各自的数据提供程序一起工作正常。但是无法为 LiteDB 获取任何数据提供程序(no-sql)。是否有任何关于 entity framework with LiteDB 的文章或示例代码。
你的问题很相关。 LiteDB 有一个 API 与 EntityFramework 非常相似。在我看来,我认为没有必要将 EF 与 LiteDB 一起使用。但这只是我的想法。回答你的问题,仍然没有实现兼容性。附上问题link.
你们有计划支持EntityFramework#1198
https://github.com/mbdavid/LiteDB/issues/1198
您可以通过实现通用数据库接口来解决问题。
像这样:
public interface IDatabaseService<TEntity>
where TEntity : Entity, new()
{
void Insert(TEntity entity);
}
LiteDB(这个class可以是一个抽象class以确保你不会忘记SQL服务器数据库来实例化):
public class LiteDBService<TEntity> : IDatabaseService<TEntity>
where TEntity : Entity, new()
{
private string _stringConnection;
private LiteDatabase _db;
protected LiteCollection<TEntity> _collection;
public DatabaseService()
{
_stringConnection = string.Format("filename={0};journal=false", DependencyService.Get<IFileService>().GetLocalFilePath("LiteDB.db"));
_db = new LiteDatabase(_stringConnection);
_collection = _db.GetCollection<TEntity>();
}
public void Insert(TEntity entity)
{
_collection.Insert(entity);
}
}
SQLServer:
public class SQLServerService <TEntity> : LiteDBService<TEntity>, IDatabaseService<TEntity>
where TEntity : Entity, new()
{
private readonly MyContext _context;
public SQLServerService(MyContext context)
{
_context = context;
}
public void Insert(TEntity entity)
{
_context.Set<TEntity>.Add(entity);
_context.SaveChanges();
base.Insert(entity);
}
}
我希望我的 entity framework Dbcontext class 与不同的 -2 数据库一起工作。它与 SQL 服务器、MySql、SQLite 使用各自的数据提供程序一起工作正常。但是无法为 LiteDB 获取任何数据提供程序(no-sql)。是否有任何关于 entity framework with LiteDB 的文章或示例代码。
你的问题很相关。 LiteDB 有一个 API 与 EntityFramework 非常相似。在我看来,我认为没有必要将 EF 与 LiteDB 一起使用。但这只是我的想法。回答你的问题,仍然没有实现兼容性。附上问题link.
你们有计划支持EntityFramework#1198 https://github.com/mbdavid/LiteDB/issues/1198
您可以通过实现通用数据库接口来解决问题。
像这样:
public interface IDatabaseService<TEntity>
where TEntity : Entity, new()
{
void Insert(TEntity entity);
}
LiteDB(这个class可以是一个抽象class以确保你不会忘记SQL服务器数据库来实例化):
public class LiteDBService<TEntity> : IDatabaseService<TEntity>
where TEntity : Entity, new()
{
private string _stringConnection;
private LiteDatabase _db;
protected LiteCollection<TEntity> _collection;
public DatabaseService()
{
_stringConnection = string.Format("filename={0};journal=false", DependencyService.Get<IFileService>().GetLocalFilePath("LiteDB.db"));
_db = new LiteDatabase(_stringConnection);
_collection = _db.GetCollection<TEntity>();
}
public void Insert(TEntity entity)
{
_collection.Insert(entity);
}
}
SQLServer:
public class SQLServerService <TEntity> : LiteDBService<TEntity>, IDatabaseService<TEntity>
where TEntity : Entity, new()
{
private readonly MyContext _context;
public SQLServerService(MyContext context)
{
_context = context;
}
public void Insert(TEntity entity)
{
_context.Set<TEntity>.Add(entity);
_context.SaveChanges();
base.Insert(entity);
}
}