跟我学MVC系列(Repository模式、LINQ、EF、IOC框架Castle、JQuery、AJAX)(一)数据库建模
跟我学MVC系列(Repository模式、LINQ、EF、IOC框架Castle、JQuery、AJAX)(二)Models(ORM)
跟我学MVC系列(Repository模式、LINQ、EF、IOC框架Castle、JQuery、AJAX)(三)Models(ORM、Repository模式、分页)
好久没有更新拉,整天在博客园里混,没有一点自己的东西,老是有点心虚。实际上,想写点东西的想法我每天都有,只是种种原因(其实就是懒惰)给耽搁了。今天,我终于痛定思痛,痛改前非,实实在在的写些东西出来,就是在做项目中学习到的一些东西,系统地给整理一下,算作是一个知识管理吧。当然如果能对您的工作或学习有所帮助,那就是我莫大的欣慰了。由于小弟才疏学浅,在卧虎藏龙的园子里有班门弄斧的嫌疑,列位看官,见笑拉。
由于公司的项目保密性,不能拿出来分享,我就自己写一个网络记账的小软件,中间涉及到我做项目中用到的Repository模式、LINQ、EF、IOC框架Castle、JQuery、AJAX等技术。小弟我是现学现用,肯定有很多败笔之处,欢迎批评指正。
这些例子暂时就称作《破孩网络记账本》吧。
功能:
1.用户登录后显示最近记账列表
2.用户可以随时记账(时间、账目类型、收入OR支出、金额、地点、内容等)
3.智能搜索
4.各种统计
5.能够到处EXCEL表格
功能比较简单,用例图就不画啦,直接设计数据库。
现在我们直接进行数据库建模,建模工具是EA,
数据库模型图:
Users:用户表
Accounts:账目表
AccountsTypes:账目类型表(衣食住行等)
接下来开始建立数据库:
数据库采用SQL SERVER 2000
数据库名称:PBAccount
SQL语句:
OK,数据库设计已经完成,下篇我们接着探讨EF,LINQ和Resposity模式的应用。
注:请安装VS2008 SP1,ASP.NET MVC1.0 下载地址:http://www.microsoft.com/downloads/details.aspx?FamilyID=53289097-73ce-43bf-b6a6-35e00103cb4b&displaylang=en
跟我学MVC系列(Repository模式、LINQ、EF、IOC框架Castle、JQuery、AJAX)(三)Models(ORM、Repository模式、分页)
好久没有更新拉,整天在博客园里混,没有一点自己的东西,老是有点心虚。实际上,想写点东西的想法我每天都有,只是种种原因(其实就是懒惰)给耽搁了。今天,我终于痛定思痛,痛改前非,实实在在的写些东西出来,就是在做项目中学习到的一些东西,系统地给整理一下,算作是一个知识管理吧。当然如果能对您的工作或学习有所帮助,那就是我莫大的欣慰了。由于小弟才疏学浅,在卧虎藏龙的园子里有班门弄斧的嫌疑,列位看官,见笑拉。
由于公司的项目保密性,不能拿出来分享,我就自己写一个网络记账的小软件,中间涉及到我做项目中用到的Repository模式、LINQ、EF、IOC框架Castle、JQuery、AJAX等技术。小弟我是现学现用,肯定有很多败笔之处,欢迎批评指正。
这些例子暂时就称作《破孩网络记账本》吧。
功能:
1.用户登录后显示最近记账列表
2.用户可以随时记账(时间、账目类型、收入OR支出、金额、地点、内容等)
3.智能搜索
4.各种统计
5.能够到处EXCEL表格
功能比较简单,用例图就不画啦,直接设计数据库。
现在我们直接进行数据库建模,建模工具是EA,
数据库模型图:
Users:用户表
Accounts:账目表
AccountsTypes:账目类型表(衣食住行等)
接下来开始建立数据库:
数据库采用SQL SERVER 2000
数据库名称:PBAccount
SQL语句:
CREATE TABLE [Accounts] (
[AccountID] [uniqueidentifier] NOT NULL ,
[UserID] [uniqueidentifier] NOT NULL ,
[InOrOut] [bit] NOT NULL ,
[Amount] [float] NOT NULL ,
[TypeID] [uniqueidentifier] NOT NULL ,
[Time] [datetime] NOT NULL ,
[Status] [int] NOT NULL ,
[Detail] [image] NULL ,
CONSTRAINT [PK_Accounts] PRIMARY KEY CLUSTERED
(
[AccountID]
) ON [PRIMARY] ,
CONSTRAINT [FK_Accounts_AccountTypes] FOREIGN KEY
(
[TypeID]
) REFERENCES [AccountTypes] (
[AccountTypeID]
),
CONSTRAINT [FK_Accounts_Users] FOREIGN KEY
(
[UserID]
) REFERENCES [Users] (
[UserID]
)
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE TABLE [AccountTypes] (
[AccountTypeID] [uniqueidentifier] NOT NULL ,
[AccountTypeName] [char] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
CONSTRAINT [PK_AccountTypes] PRIMARY KEY CLUSTERED
(
[AccountTypeID]
) ON [PRIMARY]
) ON [PRIMARY]
GO
CREATE TABLE [Users] (
[UserID] [uniqueidentifier] NOT NULL ,
[LoginName] [char] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[Name] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[Sex] [bit] NULL ,
[BirthDay] [datetime] NULL ,
[Profession] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[Role] [int] NULL ,
CONSTRAINT [PK_Users] PRIMARY KEY CLUSTERED
(
[UserID]
) ON [PRIMARY]
) ON [PRIMARY]
GO
注意:一个要设置好各表之间的关系,只有这个才能自动生成正确的ORM,如下图:[AccountID] [uniqueidentifier] NOT NULL ,
[UserID] [uniqueidentifier] NOT NULL ,
[InOrOut] [bit] NOT NULL ,
[Amount] [float] NOT NULL ,
[TypeID] [uniqueidentifier] NOT NULL ,
[Time] [datetime] NOT NULL ,
[Status] [int] NOT NULL ,
[Detail] [image] NULL ,
CONSTRAINT [PK_Accounts] PRIMARY KEY CLUSTERED
(
[AccountID]
) ON [PRIMARY] ,
CONSTRAINT [FK_Accounts_AccountTypes] FOREIGN KEY
(
[TypeID]
) REFERENCES [AccountTypes] (
[AccountTypeID]
),
CONSTRAINT [FK_Accounts_Users] FOREIGN KEY
(
[UserID]
) REFERENCES [Users] (
[UserID]
)
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE TABLE [AccountTypes] (
[AccountTypeID] [uniqueidentifier] NOT NULL ,
[AccountTypeName] [char] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
CONSTRAINT [PK_AccountTypes] PRIMARY KEY CLUSTERED
(
[AccountTypeID]
) ON [PRIMARY]
) ON [PRIMARY]
GO
CREATE TABLE [Users] (
[UserID] [uniqueidentifier] NOT NULL ,
[LoginName] [char] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[Name] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[Sex] [bit] NULL ,
[BirthDay] [datetime] NULL ,
[Profession] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[Role] [int] NULL ,
CONSTRAINT [PK_Users] PRIMARY KEY CLUSTERED
(
[UserID]
) ON [PRIMARY]
) ON [PRIMARY]
GO
OK,数据库设计已经完成,下篇我们接着探讨EF,LINQ和Resposity模式的应用。
注:请安装VS2008 SP1,ASP.NET MVC1.0 下载地址:http://www.microsoft.com/downloads/details.aspx?FamilyID=53289097-73ce-43bf-b6a6-35e00103cb4b&displaylang=en