使用SqlMetal util从* SDF生成* DBML文件的问题

时间:2011-01-26 11:36:46

标签: linq linq-to-sql sql-server-ce sqlmetal

我尝试从sdf文件生成dbml。

所以我将sqlMetal util本地化为:C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin

Sdf数据库文件路径:D:\DB_TEST\Spiri_SQL_CE_DB.sdf

所以我在生成dbml文件时尝试这个命令:

C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin>sqlmetal.exe D:\DB_TEST\
Spiri_SQL_CE_DB.sdf /dbml:D:\DB_TEST\Spiri_SQL_CE_DB.sdf\Spiri_SQL_CE_DB.dbml

我收到此错误:

Error : SQM1007: There is an IO error and the output file 'D:\DB_TEST\Spiri_SQL_
CE_DB.sdf\Spiri_SQL_CE_DB.dbml' cannot be opened.

所以我尝试这个命令:

C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin>sqlmetal.exe D:\DB_TEST\
Spiri_SQL_CE_DB.sdf /dbml:Spiri_SQL_CE_DB.dbml

但是我收到了这个错误:

Error : Access to the path 'C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\
Bin\Spiri_SQL_CE_DB.dbml' is denied.

最后,我尝试使用此版本的命令:

C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin>sqlMetal /dbml:Spiri_SQL
_CE_DB.dbml D:\DB_TEST\Spiri_SQL_CE_DB.sdf

但我得到同样的错误:

Error : Access to the path 'C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\
Bin\Spiri_SQL_CE_DB.dbml' is denied.

我知道文件Spiri_SQL_CE_DB.dbml还不存在,但我尝试使用sqlMetal生成turil这个文件,有什么不好?

1 个答案:

答案 0 :(得分:1)

将SDF和DBML复制到您具有足够写入/修改权限的位置。

否则,使用提升的权限(也称为runas管理员)启动命令提示符。

顺便说一句,你的第一次尝试完全是假的。

或做:

sqlMetal /dbml:D:\DB_TEST\Spiri_SQL_CE_DB.dbml D:\DB_TEST\Spiri_SQL_CE_DB.sdf