发布日期:
2009-06-16 21:20 发布者: cobra
原版编程图书超低价热卖
1#
t
T
上一篇: LINQ TO SQL学习笔记(6)_常见异常及解决办法引言 本文介绍Linq to sql在实际工程中的例子,利用TreeView,递归实现导航功能。在下一篇当中我们会结合角色权限进行有选择的加载。 系统环境- Visual Studio 2010 +NET Framework 3.5+Microsoft SQL Server 2005+Window XP+ SP3
- LINQ TO SQL采用配置式开发
开发实现由于linq to sql属于ORM属于Bottom Up的ORM设计框架,结合TreeView特点。我们先设计数据库。 数据库设计观察TreeView的Node的特点,一种是有子点,另外一种是叶子节点。我们设计的PDM模型如下: 有子点的Node对象对应模块分类表,叶子节点Node对应模块表。其中模块分类表自身有1对多关系(一个模块分类可以继续子分类),和模块表是1对多关系(对各叶子节点模块属于同一个模块分类) 生成表PB_MODULE_TYPE 的SQL(MS SQLSERVER 2005)如下: - USE [Test]
- GO
- /****** 对象: Table [dbo].[MODULE_TYPE] 脚本日期: 06/16/2009 17:05:43 ******/
- SET ANSI_NULLS ON
- GO
- SET QUOTED_IDENTIFIER ON
- GO
- SET ANSI_PADDING ON
- GO
- CREATE TABLE [dbo].[MODULE_TYPE](
- [ID] [varchar](15) COLLATE Chinese_PRC_CI_AS NOT NULL,
- [PARENT_ID] [varchar](15) COLLATE Chinese_PRC_CI_AS NULL,
- [NAME] [varchar](40) COLLATE Chinese_PRC_CI_AS NOT NULL,
- [REMARK] [varchar](200) COLLATE Chinese_PRC_CI_AS NULL,
- [ORDER_ID] [int] NOT NULL,
- CONSTRAINT [PK_PB_MODULE_TYPE] PRIMARY KEY NONCLUSTERED
- (
- [ID] ASC
- )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
- ) ON [PRIMARY]
- GO
- SET ANSI_PADDING OFF
- GO
- USE [Test]
- GO
- ALTER TABLE [dbo].[MODULE_TYPE] WITH CHECK ADD CONSTRAINT [FK_PB_MODULE_TYPE_PB_MODULE_TYPE] FOREIGN KEY([PARENT_ID])
- REFERENCES [dbo].[MODULE_TYPE] ([ID])
- INSERT INTO dbo.PB_MODULE_TYPE (PB_ID, PB_NAME, PB_ORDER_ID) VALUES ('0000000001', '分类1', 10)
- INSERT INTO dbo.PB_MODULE_TYPE (PB_ID, PB_PARENT_ID ,PB_NAME, PB_ORDER_ID) VALUES ('0000000011','0000000001', '分类11',11)
- INSERT INTO dbo.PB_MODULE_TYPE (PB_ID, PB_PARENT_ID ,PB_NAME, PB_ORDER_ID) VALUES('0000000012', '0000000001','分类12', 12)
- INSERT INTO dbo.PB_MODULE_TYPE (PB_ID, PB_NAME,PB_ORDER_ID) VALUES ('0000000002', '分类2', 20)
- INSERT INTO dbo.PB_MODULE_TYPE (PB_ID, PB_NAME, PB_ORDER_ID) VALUES ('0000000003', '分类3', 30)
- INSERT INTO dbo.PB_MODULE_TYPE (PB_ID, PB_NAME, PB_ORDER_ID) VALUES ('0000000004', '分类4', 40)
- go
复制代码生成表PB_MODULE_TYPE 的SQL(MS SQLSERVER 2005)如下: - USE [Test]
- GO
- /****** 对象: Table [dbo].[MODULE] 脚本日期: 06/16/2009 17:06:41 ******/
- SET ANSI_NULLS ON
- GO
- SET QUOTED_IDENTIFIER ON
- GO
- SET ANSI_PADDING ON
- GO
- CREATE TABLE [dbo].[MODULE](
- [ID] [varchar](15) COLLATE Chinese_PRC_CI_AS NOT NULL,
- [MODULE_TYPE_ID] [varchar](15) COLLATE Chinese_PRC_CI_AS NOT NULL,
- [TAG] [varchar](40) COLLATE Chinese_PRC_CI_AS NOT NULL,
- [NAME] [varchar](40) COLLATE Chinese_PRC_CI_AS NOT NULL,
- [MODULE_URL] [varchar](200) COLLATE Chinese_PRC_CI_AS NULL,
- [REMARK] [varchar](200) COLLATE Chinese_PRC_CI_AS NULL,
- [DISABLED] [int] NOT NULL,
- [ORDER_ID] [int] NOT NULL,
- CONSTRAINT [PK_PB_MODULE] PRIMARY KEY NONCLUSTERED
- (
- [ID] ASC
- )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
- ) ON [PRIMARY]
- GO
- SET ANSI_PADDING OFF
- GO
- USE [Test]
- GO
- ALTER TABLE [dbo].[MODULE] WITH CHECK ADD CONSTRAINT [FK_PB_MODULE_PB_MODULE_TYPE1] FOREIGN KEY([MODULE_TYPE_ID])
- REFERENCES [dbo].[MODULE_TYPE] ([ID])
- INSERT INTO dbo.PB_MODULE (PB_ID, PB_MODULE_TYPE_ID, PB_TAG, PB_NAME, PB_MODULE_URL, PB_DISABLED, PB_ORDER_ID) VALUES ('0000000000', '0000000001', 'SysCodeMgr', '百度', 'www.ambow.com', 0, 10)
- INSERT INTO dbo.PB_MODULE (PB_ID, PB_MODULE_TYPE_ID, PB_TAG, PB_NAME, PB_MODULE_URL, PB_DISABLED, PB_ORDER_ID) VALUES ('0000000001', '0000000001', 'ModuleMgr', '安博', 'www.ambow.com', 0, 20)
- INSERT INTO dbo.PB_MODULE (PB_ID, PB_MODULE_TYPE_ID, PB_TAG, PB_NAME, PB_MODULE_URL, PB_DISABLED, PB_ORDER_ID) VALUES ('0000000002', '0000000011', 'RoleMgr', '软件培训', 'www.ambow.com', 0, 10)
- INSERT INTO dbo.PB_MODULE (PB_ID, PB_MODULE_TYPE_ID, PB_TAG, PB_NAME, PB_MODULE_URL, PB_DISABLED, PB_ORDER_ID) VALUES ('0000000003', '0000000012', 'DepartmentMgr', '心心相映', '', 0, 20)
- INSERT INTO dbo.PB_MODULE (PB_ID, PB_MODULE_TYPE_ID, PB_TAG, PB_NAME, PB_MODULE_URL, PB_DISABLED, PB_ORDER_ID) VALUES ('0000000004', '0000000012', 'StaffMgr', '昆山安博软件外包产业园', 'www.ambow.com', 0, 30)
- INSERT INTO dbo.PB_MODULE (PB_ID, PB_MODULE_TYPE_ID, PB_TAG, PB_NAME, PB_MODULE_URL, PB_DISABLED, PB_ORDER_ID) VALUES ('0000000005', '0000000002', 'ChangeMyPwd', '新浪', 'www.sina.com', 0, 10)
- INSERT INTO dbo.PB_MODULE (PB_ID, PB_MODULE_TYPE_ID, PB_TAG, PB_NAME, PB_MODULE_URL, PB_DISABLED, PB_ORDER_ID) VALUES ('0000000006', '0000000003', 'UserMgr', '雅虎', 'www.qq.com', 0, 10)
复制代码
|