跟我學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語句:
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,如:
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