2.1 如何建立LINQ项目 下
- 评论:0
- 浏览:564
- RSS:0
数据库对象模型
那么,我们该怎么生成数据库对象模型呢?
a) 通过O/R(Object Relational Designer)设计器生成:
O/R设计器是一个可视的、所见即所得的图形化设计LINQ toSQL实体类的工具,并且完整的包括了数据库之间的关系,也就是说它映射了数据库之间的对象、存储过程、视图等等。在O/R设计器中,他提供了两个不同的设计窗口,左边是实体类的设计窗口,右边是方法的设计窗口,实体类设计窗口主要设计实体类,实体类之间的关系,方法设计窗口主要是映射存储过程和函数。现在O/R设计器仅支持SQL Server 2000,SQL Server 2005和SQL Server Express。我们现在通过一个例子来介绍如何使用O/R设计器:
依次选择 File->New File ->LINQ to SQL Class 并把文件命名为User.DBML。
此时编译器就给我们建立好了一个空的LINQ to SQL Class。我们在依次选择数据库浏览器->选择我们的数据库->选择User表和getAllUser的存储过程拖入到 O/R设计器中。最后结果如图X-X所示。
现在我们保存文件,一个包含了User表和getAllUser的存储过程的数据库对象模型就声称了。
b) 使用SqlMeta.exe命令行工具生成:
SqlMeta.exe命令行工具(需要在Visual Studio 2008的命令行工具中执行)也是能连接到数据库并直接产生根数据库对应得对象模型。与O/R设计器所不同的除了不是命令行工具以外,他是把数据库中所有的表生成一个数据库对象模型,而O/R设计器可以根据需要来生成不同的数据库模型。
下面介绍一下SqlMeta.exe一些主要参数,如表X-X所示。
表X-X SqlMeta.exe主要参数
|
参数名称 |
参数说明 |
|
/server:<name> |
指定数据库地址 |
|
/database:<name> |
指定数据表名称 |
|
/user:<name> |
指定数据库的用户名 |
|
/password:<name> |
指定数据库的用户密码 |
|
/views |
生成的数据库对象模型中包含视图 |
|
/sprocs |
生成的数据库对象模型中包含存储过程 |
|
/functions |
生成的数据库对象模型中包含自定义函数 |
|
/dbml[:file] |
生成的数据库对象模型以dbml文件形式存在,如果使用了此参数的话,则不能使用 /map参数 |
|
/code[:file] |
生成的数据库对象模型以cs/vb文件形式存在,如果使用了此参数的话,则不能使用 /dbml参数 |
|
/map[:file] |
生成的数据库对象模型以XML文件形式存在,如果使用了此参数的话,则不能使用 /dbml参数 |
|
/language:<language> |
指定生成数据库对象模型的语言,参数为:vb, csharp. |
|
/namespace:<name> |
指定生成数据库对象模型的命名空间。默认为无命名空间 |
|
/pluralize
|
使用一些默认的命名逻辑习惯(单数化或者复数化)来创建属性和表的名字-比如创建一个“User“类来映射到“Users”表或者创建一个“Users”类来映射到“User”表 |
|
/serialization:<option>
|
序列化数据库对象模型,参数为:None, Unidirectional.默认值为:None,即不序列化 |
|
<input file>
|
针对SQL Server Express的 .mdf文件、SQL Server Compact 3.5 的.sdf文件、或者.dbml文件的具体路径,并生成数据库对象模型。 |
例如:
从数据库northwind中生成mymeta.dbml文件
sqlmetal /server:myserver /database:northwind /dbml:mymeta.dbml
从SQL Server Express数据库生成dbml文件
sqlmetal /server:.\sqlexpress /dbml:mymeta.dbml /database:northwind
指定生成的dbml文件的语言为c#
sqlmetal /namespace:nwind /code:nwind.cs /language:csharp mymetal.dbml
制定生成的dbml文件的命名空间为nwind
sqlmetal /server:myserver /database:northwind /namespace:nwind /code:nwind.cs /language:csharp