日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Castle学习之一:安装与环境设置

發布時間:2025/3/8 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Castle学习之一:安装与环境设置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
第一步,當然是下載了。
我本來下載的是Castle RC2的MSI安裝文件,并通過SVN下載了Generator,但是安裝后發現了一些問題(主要是.net版本的問題),所以刪除了之后,從SVN下載了全部最新的代碼,然后用NAnt在.net 2.0環境下編譯。
具體操作:
1,安裝TortoiesSVN;
2,建立新目錄:D:\working\Castle.SVN\
3,右擊新建目錄的圖標,SVN CheckOut: http://svn.castleproject.org:8080/svn/castle/trunk/
(以下步驟參照下載下來的how to build.txt)
4,打開命令行,切換到D:\Working\Castle.SVN目錄,執行命令: nant -t:net-2.0(當然前提是安裝了NAnt)
這個過程比較長,持續了大約10分鐘左右.最后生成了一個新目錄: D:\working\Castle.SVN\build\net-2.0\debug .我們所需要引用的DLL就包含在這個目錄里了(哪位能說一下怎么生成.net 2.0下的Release版?).
5,在本地的Sql Server上建立兩個空數據庫test, test2

第二步,嘗試使用ActiveRecord.
這一步我基本上是跟著ActiveRecord Getting Started里的介紹在做,只不過沒有使用VS的項目模板:
1,在Visual Studio 2005里新建一個Class Library項目,添加對以下dll的引用: Castle.ActiveRecord, Castle.Core, Castle.DynamicProxy, log4net, NHibernate.
2,錄入代碼:

School.cs
?1?using?System;
?2?using?System.Collections.Generic;
?3?using?System.Text;
?4?using?Castle.ActiveRecord;
?5?
?6?namespace?BookStore.Components
?7?{
?8?????[ActiveRecord("book_School")]
?9?????public?class?School?:?ActiveRecordBase<School>
10?????{
11?????????Guid?_id;
12?????????string?_name;
13?
14?????????IList<TClass>?_classes?=?new?List<TClass>();
15?
16?????????[PrimaryKey(PrimaryKeyType.Guid)]
17?????????public?Guid?Id
18?????????{
19?????????????get?{?return?_id;?}
20?????????????set?{?_id?=?value;?}
21?????????}
22?
23?????????[Property]
24?????????public?string?Name
25?????????{
26?????????????get?{?return?_name;?}
27?????????????set?{?_name?=?value;?}
28?????????}
29?
30?????????[HasMany(typeof(TClass),?Inverse?=?true,?Cascade?=?ManyRelationCascadeEnum.AllDeleteOrphan)]
31?????????public?IList<TClass>?Classes
32?????????{
33?????????????get?{?return?_classes;?}
34?????????????set?{?_classes?=?value;?}
35?????????}
36?????}
37?}
38?

TClass.cs
?1?using?System;
?2?using?System.Collections.Generic;
?3?using?System.Text;
?4?using?Castle.ActiveRecord;
?5?
?6?namespace?BookStore.Components
?7?{
?8?????[ActiveRecord("book_class")]
?9?????public?class?TClass?:?ActiveRecordBase<TClass>
10?????{
11?????????Guid?_id;
12?????????string?_name;
13?????????int?_birthYear;
14?
15?????????School?_school;
16?
17?????????[PrimaryKey(PrimaryKeyType.Guid)]
18?????????public?Guid?Id
19?????????{
20?????????????get?{?return?_id;?}
21?????????????set?{?_id?=?value;?}
22?????????}
23?
24?????????[Property]
25?????????public?int?BirthYear
26?????????{
27?????????????get?{?return?_birthYear;?}
28?????????????set?{?_birthYear?=?value;?}
29?????????}
30?
31?????????[Property]
32?????????public?string?Name
33?????????{
34?????????????get?{?return?_name;?}
35?????????????set?{?_name?=?value;?}
36?????????}
37?
38?????????[BelongsTo("schoolId")]
39?????????public?School?School
40?????????{
41?????????????get?{?return?_school;?}
42?????????????set?{?_school?=?value;?}
43?????????}
44?????}
45?}
46?

由于個人更喜歡Guid類型的主鍵,所以沒有完全照搬教程的代碼,而是做了一些修改.

編譯,通過.好了,下一步寫點測試代碼吧.

Getting Started里用的是Winform,我順便改成了使用NUnit的測試.

SchoolTest.cs
?1?using?System;
?2?using?System.Collections.Generic;
?3?using?System.Text;
?4?using?NUnit.Framework;
?5?using?Castle.ActiveRecord;
?6?using?Castle.ActiveRecord.Framework.Config;
?7?using?BookStore.Components;
?8?
?9?namespace?BookStore.Tests
10?{
11?????[TestFixture]
12?????public?class?SchoolClass
13?????{
14?????????[TestFixtureSetUp]
15?????????public?void?SetUpAll()
16?????????{
17?????????????XmlConfigurationSource?source?=?new?XmlConfigurationSource("appconfig.xml");
18?
19?????????????ActiveRecordStarter.Initialize(source,?typeof(School),?typeof(TClass));
20?
21?????????????ActiveRecordStarter.CreateSchema();
22?????????????school?=?new?School();
23?????????????school.Name?=?schoolName;
24?????????????school.Create();
25?????????}
26?
27?????????School?school;
28?????????string?schoolName?=?"中國礦業大學(北京)";
29?
30?????????[Test]
31?????????public?void?Schools()
32?????????{
33?????????????Assert.AreEqual(1,?School.FindAll().Length);
34?????????????School?newSchool?=?School.Find(school.Id);
35?????????????Assert.AreEqual(school.Id,?newSchool.Id);
36?????????????Assert.AreEqual(schoolName,?newSchool.Name);
37?????????}
38?
39?????????[Test]
40?????????public?void?Classses()
41?????????{
42?????????????string?className="市場管理001班";
43?????????????TClass?theClass?=?new?TClass();
44?????????????theClass.Name?=?className;
45?????????????theClass.School?=?school;
46?????????????theClass.BirthYear?=?2000;
47?????????????theClass.Create();
48?
49?????????????Assert.AreEqual(1,?TClass.FindAll().Length);
50?????????????TClass?newClass?=?TClass.Find(theClass.Id);
51?????????????Assert.AreEqual(theClass.Id,?newClass.Id);
52?????????????Assert.AreEqual(className,?newClass.Name);
53?????????????Assert.AreEqual(schoolName,?newClass.School.Name);
54?????????????Assert.AreEqual(2000,?newClass.BirthYear);
55?????????}
56?
57?????????[TestFixtureTearDown]
58?????????public?void?TearDown()
59?????????{
60?????????????ActiveRecordStarter.DropSchema();
61?????????}
62?????}
63?}
64?

測試,OK!

需要注意的幾點:
1,ActiveRecord里主鍵默認是int類型,改成Guid之后,PrimaryKey屬性必須聲明為[PrimaryKey(PrimaryKeyType.Guid)],否則進行數據庫操作時會出錯.
2,ActiveRecord里主鍵不應該被賦值,即使賦值了添加到數據庫時也會因為重新生成主鍵而丟失.
3,這個版本的ActiveRecordStarter.CreateSchemaFromFile好像有點問題,執行后沒有任何效果,而且不報任何錯誤.
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的Castle学习之一:安装与环境设置的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲伊人成人网 | 黄色最新网址 | 在线99视频 | 日韩中文字幕一区二区三区 | 黄色免费网站视频 | 亚洲精品免费在线观看视频 | xxx日本少妇 | 999xxxx | 国产又好看的毛片 | 欧美黑粗大 | 日韩一级免费 | 成人三级在线播放 | 欧美伦理片 | 久久精品精品 | 国产青青草在线 | 免费毛片基地 | 亚洲在线视频免费观看 | 中文字幕高清在线免费播放 | 69久久| 欧美做爰xxxⅹ性欧美大片 | 国产黄色片在线观看 | 激情综合文学 | 久热热 | 国产制服av| 无码内射中文字幕岛国片 | 人妻射精一区二区 | 欧美一区二区三区久久精品 | 又色又爽又黄无遮挡的免费视频 | 蜜臀久久99精品久久久 | 天天做天天躁天天躁 | 一区二区三区爱爱 | 久国产| 男女视频在线观看免费 | 韩国中文字幕 | 亚洲天堂成人 | 台湾佬在线 | 岛国一区 | 日韩欧美在线观看视频 | 女性生殖扒开酷刑vk | 91av网址 | 亚洲乱仑 | 久久成人综合网 | 黄色片网站在线免费观看 | 亚洲国产小视频 | 国产88av | 成人久久视频 | 夜夜躁狠狠躁 | 黑料av在线| 国产偷亚洲偷欧美偷精品 | 老司机午夜视频 | 黄网站免费看 | 欧美 变态 另类 人妖 | 天堂在线中文 | 日本免费一区二区在线 | 欧美大片黄色 | 国产一级一级国产 | 国产大片一区二区三区 | 国产精品四虎 | 国产高清日韩 | 狼人精品一区二区三区在线 | 亚洲在线免费看 | 欧美日本久久 | 欧美三级 欧美一级 | 福利片第一页 | 亚洲字幕在线观看 | 91精品国产福利在线观看 | 国产欧美一区二区三区国产幕精品 | 国产亚洲欧美精品久久久www | 天堂8在线 | 来吧亚洲综合网 | 国产哺乳奶水91在线播放 | 国内自拍区 | 超级碰碰97 | 国产精品午夜无码专区 | 麻豆av影院 | 亚洲涩视频 | 日韩在线免费 | 欧美日韩综合一区二区 | 六月丁香久久 | 国产亚洲色婷婷久久99精品 | 亚洲视频导航 | 国产精品精东影业 | 国产亚洲毛片 | 91美女高潮出水 | 日本一区二区三区视频在线观看 | 小sao货水好多真紧h无码视频 | 国产亲伦免费视频播放 | 天天插天天搞 | 国产精品综合视频 | 成人做爰视频www网站小优视频 | 欧美激情一二三区 | 另类综合在线 | 美女被草视频在线观看 | 91高清视频免费观看 | 性插动态视频 | 婷婷开心激情网 | 一级看片免费视频 | 亚洲欧美专区 | 影音先锋在线中文字幕 |