UWP项目用EF Core 2.0.3连接LocalDB报错,是否不支持该数据库?
关于UWP + EF Core 2.0.3 连接LocalDB报错的问题
你遇到的错误 LocalDB is not supported on this platform 其实是EF Core 2.0.3在UWP平台上的固有限制,并非操作疏漏,下面给你详细拆解:
核心原因
LocalDB是SQL Server Express的轻量衍生版本,它依赖系统级服务进程和对本地文件系统的直接读写权限,但UWP的沙箱环境对应用的资源访问做了严格限制,完全无法满足LocalDB的运行条件。同时EF Core 2.x的官方支持矩阵里明确标注:UWP平台不支持LocalDB作为数据源。
另外你的连接字符串还有个小细节问题:
Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFileName=\Statistics.mdf;Initial Catalog=Statistics;Integrated Security=True;Connect Timeout=30
其中AttachDbFileName=\Statistics.mdf的路径写法在UWP中无效——UWP应用只能访问自身沙箱内的路径(比如ApplicationData.Current.LocalFolder对应的目录),但即使修正了这个路径,LocalDB本身依然无法在UWP沙箱中正常运行。
可行的替代方案
- 优先选择SQLite:这是UWP本地数据存储的标准方案,EF Core 2.0.3对SQLite有完善的支持,数据库文件直接存放在应用沙箱内,完全适配UWP的安全模型,不需要依赖任何SQL Server环境。
- 使用完整SQL Server Express实例:如果必须沿用SQL Server生态,可以安装本地完整的SQL Server Express(注意不是LocalDB),然后通过网络连接字符串访问该实例,只要给UWP应用配置好网络权限就能正常连接。
- 升级EF Core版本:虽然升级到EF Core 3.x+也无法解决LocalDB在UWP的运行问题,但新版本对UWP的整体支持更完善,能提供更稳定的开发体验和更多数据源选项。
内容的提问来源于stack exchange,提问作者J_PT
相关产品推荐
相关产品推荐

