2009-08-22 56 views
0

我有一个使用SQL Server,实体框架,C#和WCF编写的简单应用程序。当我想与我的朋友分享这个应用时,我意识到他们没有在他们的机器上使用SQL Server。我可以使用SQL Server Express版本,因为我的应用程序的用途是个人的和非商业的。替代SQL Server的简单网络应用程序

我发现MySQL是SQL Server的流行替代品。

1)移动到MySQL时,我需要更新我的实体吗?

2)由于实体层的变化,我是否应该预测BL层中的代码更改? (我想知道是否实体是为SQL Server构建的)

是否有与MS Access类似的轻量级数据库?

是否有任何数据库不需要安装,但可以像MS Access一样复制?

感谢您的回复!

+2

只需注意:您也可以将Express用于商业应用程序,无需调出即可用于个人用途。 – 2009-08-22 18:12:36

+0

[linqdb](https://github.com/ren85/linqdb) – ren 2016-09-16 13:46:13

回答

3

我不知道你的BLL是怎么样的,我没有实体框架的经验,但是我经历了多次linq-to-sql在sql-server上的工作,比其他任何数据库都好。

所以,除非你有一个很好的理由使用SQL Express的,我会的意见,坚持到SQL Express。

毕竟,您应该在部署时总是安装一些东西(除非您使用xml作为存储,这对于linq-to-xml来说非常有可能)。

7

听起来像你想SQLite

SQLite是一个软件库, 实现了一个自包含的,无服务器 ,零配置,事务性 SQL数据库引擎。

非常容易部署。另外,请查看System.Data.SQLite

按照System.Data.SQLite网页...

支持该SQL 服务器支持几乎所有的实体 框架的功能,并通过了测试 99%的MS的EFQuerySamples演示 应用。

你应该很好。 :)

+0

适合System.Data.SQLite。我仍然投票选出VistaDB作为潜在的选择(请参阅我的回答) – galaktor 2009-08-22 17:48:55

+0

ADO.NET Entity Framework是否支持? – 2009-08-22 17:56:43

+0

不确定你的意思是VistaDB或SQLite,但是关于VistaDB:是的。请参阅http://www.vistadb.net/vistadb3/sample-code.aspx – galaktor 2009-08-22 19:49:10

2

VistaDB Express Edition也是免费的非商业用途,并集成良好的.NET和VS. afaik它也可以在单个本地数据文件上工作,因此不需要在朋友的计算机上进行特定安装。

否则,我建议在MySql上使用PostgreSQL,因为它更符合标准并且拥有更好的许可证。

2

我认为你所追求的只是提供者的变化。你需要使用MySQL的是.Net Connector,它支持大多数简单的事情。它还不是很成熟,所以你可能会遇到一些非常复杂的问题,但它应该通过Entity Framework完成你想要的大部分工作。

实体框架你可以做的更新,这是LINQ到SQL不针对任何其他数据库更新(除非你使用第三方供应商像DotConnect

SQLite是一个另类,但由于针对它的多个线程可能会导致操作的主要问题,所以如果您需要一个主要的数据存储,我会使用SQLExpress或MySQL。

2

是的,你可以使用MySql和EF,但我不知道它是否需要改变....如果它确实如此,我不会感到惊讶。至少你的物理数据库必须被移植/转换为MySql,这需要时间。

我会假设,如果你需要在你的朋友上安装一个数据库,为什么不使用SQL Express,因为你已经在你的盒子上的SQL Server中开发了。与迁移到MySql相比,应该减少这个问题。

0

我也为VistaDB 3投票,因为它很容易部署。

+0

下次您也可以对您同意的答案进行最后投票并添加评论。它会做我的代表一些好;) – galaktor 2009-08-22 17:07:57

+0

公平点 - 完成! – 2009-08-22 19:23:55

+0

谢谢丹丹:) – galaktor 2009-08-22 19:46:54

相关问题