最近在dnn的开发中使用ADO.net 3.5 下的Entity Framework。没想到被它的连接字符串弄晕了。在网上找了一些资料,知道了关于它的更多消息,现在和大家分享一下。
在entity connection的连接字符串中,要包含4个信息
- csdl
- ssdl
- msl
- 数据库连接信息。
这四个信息在连接字符串中表示如下:
metadata=res://*/Model.csdl|res://*/Model.ssdl|res://*/Model.msl;provider=System.Data.SqlClient;provider connection string='Data Source=./SQL2005;Initial Catalog=DatabaseName;User ID=DNN;Password=Dnn'
是不是看起来很麻烦,要将其弄简单,首先要弄懂其中的含义。
以res://*/Model.csdl为例,它的含义为寻找当前目录下所有assembly中名字叫Model.csdl的资源。你可以使用.net 的资源映射工具去查看。
举一反三,res:///Model.csdl,它的含义是,在assemblyName的assebmly中去找Model.csdl资源
res:///,它的含义是在assemblyName的assembly中去找csdl,ssdl,msl资源
res://*/,它的含义是在当前目录下的所有assembly中去找csdl,ssdl,msl资源。
将上面的搞清楚后,这个连接字符串自然可以简化成
metadata=res://*/;provider=System.Data.SqlClient;provider connection string='Data Source=./SQL2005;Initial Catalog=DatabaseName;User ID=DNN;Password=Dnn'
简单多了吧。
更多内容,请参见