翻譯 物件檢索

2022-02-24 08:06:01 字數 3208 閱讀 2387

純屬學習上的記錄, 非專業翻譯, 如有錯誤歡迎指正!

實體集合物件類

dbset

, objectset 和它們的泛型版本)的實體提供了乙個返回指定型別的所有實體的起始查詢. 這個查詢可以通過 linq to entitier 方法進一步細化. 這一節將討論檢索資料庫或記憶體中的物件的各種方法.

這一節中的例項程式全部

school

模型.使用 dbset.find 通過主鍵獲得對應的實體

find 方法使用主鍵值做為引數來試著從上下文物件跟蹤的實體中找到對應的實體. 如果在上下文物件中找不到該實體, 那麼乙個對資料庫中的資料進行評估(判斷條件)的查詢將會被執行. 如果在上下文物件和資料庫中都找不到該實體, 則會返回空值 (null). 需要注意的是, find 方法有可能返回那些剛被新增到上下文物件中, 但還沒同步到資料庫上的物件.

下面的**演示了find 方法的使用方法:

1

using (var context = new

schoolentities()) 2);

1112

13//

即使新的 department 物件還沒有被插入到資料庫中, 但仍可以通過 find 方法找到它

14var newdepartment = context.departments.find(-1

); 15 }

find 方法接受乙個 object 陣列作為引數. 在處理含有多個主鍵的資料時, 可以按照在概念模型中定義的順序將所有主鍵用逗號分隔傳入.

使用 dbset.find 來檢視上下文物件中的資料

通過 dbset 的 system.data.entity.dbset.local 屬性可以訪問那些正被上下文物件跟蹤且沒有被標記為已刪除的物件集合. 也就是說, 訪問 local 屬性永遠不會引起資料庫查詢. 這個屬性一般在執行了一次資料庫查詢以後使用. system.data.entity.dbextensions.load(system.linq.iqueryable) 擴充套件方法可以使資料庫查詢立即被執行, 故上下文物件可以對查詢結果進行跟蹤. 例如:

1

using (var context = new

schoolentities()) 2);

1011

12//

將其中乙個已存在的 department 物件標記為 deleted.

13//

則在訪問 local 屬性時, 該物件將不會被包含在返回的結果中.

14 context.departments.remove(context.departments.find(1

));15

1617

//遍歷訪問 context 中的 department 物件

18 console.writeline("

in local:

");

19foreach (var dpt in

context.departments.local)

20: with state ",

23dpt.departmentid, dpt.name,

24context.entry(dpt).state); 25}

2627

28//

呼叫乙個對資料庫的查詢, 在這裡, 剛新增到 context 中的 department 將不會被包含在返回的結果中,

2930

//反而剛才被標記為 deleted 的 department 則會被包含在其中

31 console.writeline("

\nin dbset query:

");

32foreach (var dpt in

context.departments)

33: with state ",

35dpt.departmentid, dpt.name,

36context.entry(dpt).state); ;

37}

38 }

遍歷為繼承層次結構中一部分的實體

當概念模型中包含乙個型別繼承了另乙個型別, 則這些型別稱為繼承層次結構的一部分. 用 linq to entities, 你只需在查詢中指定基類的型別, 便可以返回乙個包含了繼承層次結構中所有型別的例項的集合. 或者你也可以通過乙個查詢返回派生類的乙個例項. 例如: 以下查詢是基於乙個定義了 onlinecourse 和 onsitecourse 這兩個繼承了 course 類的概念模型. 該查詢同時返回了 course, onlinecourse 和 onsitecourse 型別的例項.

1

var query = from c in context.courses select c;

你也可以通過oftype方法指定乙個派生類, 使查詢只返回該型別的例項. 如以下**則只返回了 onlinecourse 型別的例項.

1

var query = from c in context.courses.oftype()

2select c;

no-tracking queries

有時你可能只想對實體進行檢索, 但不需要上下文物件對實體進行跟蹤. 在對大量的實體進行唯讀檢索時, 這將帶來更好的效能. asnotracking 擴充套件方法將執行乙個查詢, 返回乙個不被上下文物件跟蹤的結果集. 在接下來的例子中, 這些查詢也會返回具體的物件, 但所返回的物件並不會被上下文物件跟蹤.

1

//查詢所有的 department 物件, 但不對他們進行跟蹤;23

var departments1 =context.departments.asnotracking().tolist();45

//查詢一部分 department 物件, 也不進行跟蹤;

6var departments2 =context.departments

7 .where(d => d.name.startswith("

math

"))

8.asnotracking()

9 .tolist();

面向機器翻譯的全文檢索系統

需要檢索的篇章,先分解成段落,並分別按段落精檢方法進行檢索。段落精檢允許一定 的模糊性。當兩個段落的結構特徵基本匹配後,進一步劃分句子,通過對句子進行相似 度的計算,最後判斷段落是否匹配。系統運用了動態規劃的方法計算句子的相似度。把待翻譯句子中的單詞列為i j平面的i軸上,例項句子中的單詞列為j軸上...

面向機器翻譯的全文檢索系統

摘 要 本文介紹了面向機器翻譯的全文檢索系統的設計和實現,該系統在實現倒排檔存 儲結構和布林邏輯檢索 位置檢索 檢索相關性排序等普通全文檢索系統功能的基礎上 提供面向機器翻譯的多層次檢索和跨語言檢索功能。針對機器翻譯中篇章 段落模糊 檢索的難題,本文提出了縮檢 精檢的方法,並通過對文件的特徵分析以及...

ABP文件翻譯 值物件

本人是abp初學者,在看英文文件和 tkb至簡 的abp框架理論研究總結 典藏版 時,發現大神 tkb至簡中少了對value objects的翻譯,看文件是新的,大神沒時間把,小弟給補充上。用於描述領域的某個方面而本身沒有概念標識的物件稱為 a value object eric evans 對於實...