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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > asp.net >内容正文

asp.net

db4o发布7.2,出现.NET 3.5版本,支持LINQ

發(fā)布時(shí)間:2023/12/14 asp.net 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 db4o发布7.2,出现.NET 3.5版本,支持LINQ 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

db4o發(fā)布7.2,出現(xiàn).NET 3.5版本,支持LINQ

Db4Object剛剛發(fā)布了db4o的7.2beta,除了以前支持如下的平臺(tái):.NET 1.1,.NET 2.0,Mono外,現(xiàn)在還支持.NET 3.5了。當(dāng)然支持.NET 3.5,最主要的時(shí)候要來(lái)支持LINQ。

關(guān)于LINQ,我稍后再講。現(xiàn)在講講7.2中最大的新特性——Transparent Activation(透明激活)。關(guān)于7.0版本的其他新特性,可以參看我在InfoQ上的文章《Db4Objects發(fā)布Db4o 7.0,支持透明激活》。

要講到透明激活,我們先來(lái)看看之前激活存在的問(wèn)題。所謂激活,就是在對(duì)象從磁盤文件載入到內(nèi)存過(guò)程中,如何加載層級(jí)對(duì)象的過(guò)程。由于對(duì)象的層級(jí)關(guān)系可以無(wú)限關(guān)聯(lián)的,所以,db4o之前使用“深度”的概念來(lái)明確表明處理對(duì)象的時(shí)候需要,處理到多少層。但是,這種方式對(duì)編程帶來(lái)很多麻煩,我們?cè)趯?xiě)代碼的時(shí)候需要隨時(shí)關(guān)心,我們大概要加載多深的對(duì)象。這樣的估計(jì)有時(shí)候會(huì)比要使用到的多,有時(shí)候又會(huì)少。多了,造成資源的浪費(fèi),少了,不能正確的處理需要處理到的對(duì)象。

下面我引用,db4o文檔中對(duì)這個(gè)問(wèn)題的描述(英文的我就不翻譯了):

We can reuse most of the code from the?Deep Graphs chapter?and get it to work with Transparent Activation.
As a first step we should fill up our database with Car, Pilot and SensorReadout objects, so we have some objects to work with.

// storeCarAndSnapshots
Pilot pilot = new Pilot("Kimi Raikkonen", 110);
Car car = new Car("Ferrari");
car.Pilot = pilot;
for (int i = 0; i < 5; i++)
{
??? car.snapshot();
}
db.Store(car);

If we now rerun the code to traverse all cars and their sensor readings, we are again confronted with the same problem that we had before, we end up with some leaves of our object graph being null.??

// retrieveSnapshotsSequentially
IObjectSet result = db.QueryByExample(typeof (Car));
Car car = (Car) result.Next();
SensorReadout readout = car.History;
while (readout != null)
{
??? Console.WriteLine(readout);
??? readout = readout.Next;
}

為了解決這個(gè)問(wèn)題,db4o在7.0中提出了透明激活的概念,即db4o透明地幫我們處理對(duì)象激活的問(wèn)題。這樣可以提供性能,讓我們編程更方便。

再次引用db4o文檔的代碼:

Let's configure db4o to run in Transparent Activation mode and let's try again:

// configureTransparentActivation
Db4oFactory.Configure().Add(new TransparentActivationSupport());

// retrieveSnapshotsSequentially
IObjectSet result = db.QueryByExample(typeof (Car));
Car car = (Car) result.Next();
SensorReadout readout = car.History;
while (readout != null)
{
??? Console.WriteLine(readout);
??? readout = readout.Next;
}

Wow it worked! Is it really that easy? Principally yes. When db4o is run in Transparent Activation mode there are no surprises with null members that have not yet been read from the database.

好了,透明激活就講到這里,現(xiàn)在來(lái)看看LINQ的支持。Linq在7.0發(fā)布之前,在db4o上已經(jīng)有一個(gè)linq to db4o的項(xiàng)目在做前期研究了,現(xiàn)在只是把linq to db4o合并到7.2中一起發(fā)布。

linq to db4o提供了一個(gè)額外的程序集:Db4objects.Db4o.Linq

要使用linq to db4o,只需要在項(xiàng)目中引用這個(gè)程序集。然后打開(kāi)一個(gè)db4o數(shù)據(jù)庫(kù),就可以使用linq語(yǔ)法查詢數(shù)據(jù)了:

Let's prepare some objects in our database to query against:

// storeObjects
db.Store(new Car("Ferrari", (new Pilot("Michael Schumacher", 100))));
db.Store(new Car("BMW", (new Pilot("Rubens Barrichello", 99))));

The simplest LINQ query will look like this:

// retrievePilot
IEnumerable<Pilot> result = from Pilot p in db
??????????????????????????? where p.Name.StartsWith("Michael")
??????????????????????????? select p;
ListResult(result);

You can see that we are using db4o object container as a datasource, the rest of the syntax is generic to all LINQ queries.
Now let's try a bit more complex selection:

// retrievePilotByCar
IEnumerable<Pilot> result = from Car c in db
??????????????????????????? where c.Model.StartsWith("F")
??????????????????????????? && (c.Pilot.Points > 99 && c.Pilot.Points <150)
??????????????????????????? select c.Pilot;
ListResult(result);

另外這里,也有一個(gè)linq to db4o的例子:Linq is here!

通過(guò)linq來(lái)查詢db4o確實(shí)帶來(lái)了很多方便,不過(guò)現(xiàn)在linq to db4o還沒(méi)有非常成熟,期待其更加完善成熟。

大家對(duì)db4o 7.2有興趣的,可以到這里下載來(lái)試試。

轉(zhuǎn)載:http://www.cnblogs.com/redmoon/archive/2008/02/23/1078619.html

轉(zhuǎn)載于:https://www.cnblogs.com/tianciliangen/p/6827985.html

總結(jié)

以上是生活随笔為你收集整理的db4o发布7.2,出现.NET 3.5版本,支持LINQ的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲精品网站在线播放gif | 欧美成人乱码一二三四区免费 | 免费极品av一视觉盛宴 | 黄色免费在线网址 | 欧美成人一区二免费视频软件 | 成人福利视频导航 | av日韩精品 | 男生吃小头头的视频 | 欧美激情亚洲色图 | 69国产精品视频 | 特级淫片aaaaaaa级 | 精品在线一区二区 | 久久夜夜操妹子 | 少妇精品久久久一区二区三区 | 一区二区精 | 男插女青青影院 | 国模二区 | 日韩大片免费观看视频播放 | 亚洲av无码国产精品久久久久 | 在线观看视频中文字幕 | 偷看洗澡一二三区美女 | 亚洲乱码精品久久久久 | 97网站| 韩国主播青草200vip视频 | 亚洲天堂av一区二区 | 精品久久久久久久久久久久 | 日韩精品无码一区二区三区 | 一区二区视频在线观看 | 亚洲欧美网站 | 九色视频在线观看 | 国产尤物在线视频 | 国产精品xxxxx | 手机看片一区二区三区 | 久久婷香| 亚洲成年网站 | a激情| 爱情岛成人 | 美女又爽又黄视频 | se94se欧美| 91免费看国产 | 日韩国产精品视频 | 男生尿隔着内裤呲出来视频 | 超碰最新上传 | 女人和拘做爰正片视频 | 亚洲自拍第三页 | 美女扒开腿让人桶爽 | 国产精品一区二区三区高潮 | xxxxav| 精品人伦一区二区三区 | 久久密av | 久久精品色欲国产AV一区二区 | 147人体做爰大胆图片成人 | 奇米婷婷 | v片在线免费观看 | 国产精品久久久久久久成人午夜 | 亚洲日本中文字幕在线 | 亚洲1区| 无码人妻丰满熟妇区五十路百度 | 国产一区二区小视频 | 四虎精品在线播放 | 欧美另类一区二区 | 一个综合色 | 日本免费一区二区三区视频 | 日本美女一区二区三区 | 国产精品丝袜在线观看 | 国产乱码视频 | 国产牛牛 | 鲁一鲁av | 国产在线综合视频 | 国产激情视频在线 | 激情五月激情综合网 | 中文字幕理伦片免费看 | 天天操天天操天天操天天操天天操 | 黑人一级视频 | 欧美啪啪一区二区 | 韩国久久久久久 | 国产精品久久久久久久久毛片 | 男人天堂久久 | 韩国伦理片在线播放 | 91精品视频在线看 | 欧美资源站 | 欧美黄色性视频 | 欧美另类精品 | 一二三四av | 老色驴综合网 | 国产小视频你懂的 | 少妇无内裤下蹲露大唇视频 | 午夜两性视频 | 久久午夜一区 | 日韩精品视频免费播放 | 性久久久久久久久 | 熟女人妻一区二区三区免费看 | 久久大奶| 国产欧美一区二区三区国产幕精品 | 自拍偷拍国产精品 | 国产精品亚洲专区无码牛牛 | 操操色 | 处女朱莉 | 夜夜狠狠擅视频 |