- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在启动一个新的网络应用程序。它将托管在对 SQL Server 额外收费的服务上,坦率地说,我认为该站点不需要那么多的数据库。现在数据模型是 5 个表。如果最大的表有 10k 条记录,我会感到惊讶。
所以我想保持数据库的轻量级。 SQLite 引起了我的兴趣,最初是因为我需要为 Android 学习它。但是缺少外键让我感到畏缩。当然可以实现一些看起来像外键约束的东西,但感觉起来没有关系。 Firebird 似乎是唯一支持 FK 的轻量级(免费)数据库。
此外,我真的很想通过这个项目涉足 LINQ。到目前为止我只找到了 dbLINQ这让我可以将 SQLite 或 Firebird 与 LINQ 一起使用。它目前是 v0.18,所以离黄金时段还很远。我已经使用 dbLinq 运行了 SQLite 测试,它们通过了我需要的测试。
还有一个 LINQ for SQLite 的其他实现,但我为它找到的所有链接都以 404 结束。
那么对于与 LINQ 兼容的轻型数据库,我有哪些选择?是否有任何精简版的 SQL Server 都已推出,除非有一个 XCOPY 可部署无需安装代理/服务?我不能要求主机安装新软件,因为我怀疑他们会这样做,而且我希望该应用程序具有高度可移植性(关于托管)。
到目前为止的列表:
更新:我尝试了所有版本和wrote up my impressions here 。简短版本:SQLite 轻而易举地获胜。它是唯一具有良好 GUI、无安装足迹且免费的软件。
最佳答案
您可以像在现有数据库上一样使用 LINQ to SQL,只要您可以创建标准的 IDbConnection
对象即可。
下面是一些在 Firebird 数据库上使用 LINQ 的代码。
DbProviderFactory dbProvider = DbProviderFactories
.GetFactory("FirebirdSql.Data.FirebirdClient");
DbConnection connection = dbProvider.CreateConnection();
connection.ConnectionString = "some connection string";
DataContext linqContext = new DataContext(connection);
var query = from something in linqContext.GetTable<SomeType>()
select something.someproperty;
关于.net - LINQ+轻量级数据库 : which db should I choose?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/481684/
我是一名优秀的程序员,十分优秀!