EF之POCO應用系列2 複雜型別

2022-08-15 00:33:10 字數 1549 閱讀 5219

在.net開發中,ef4以前的版本以及linq to sql都不支援complex資料型別,ef4終於支援complex型別的資料了,這意味著微軟的ef框架朝領域驅動方面又邁了一大步。

複雜的資料型別其實就是乙個poco類,想想曾幾何時,我們想在開發時想設計乙個使用者資訊類,我們寫的類不得不包括以下資訊:

public class userinfo;

public string identity;

public string firstname;

public string lastname;

我們的姓名一般都是包括firstname和lastname組成。我們現在改成複雜的資料型別看看是如何實現的

public class userinfo;

public string identity;

public name name;

public class name;

public string lastname;

1、開啟「northwind.edmx」,點選product-》新增-》複雜型別。

2、開啟模型瀏覽器,為複雜型別新增標量屬性,如下圖:

為詳細資料類新增如下屬性:

public

int16 unitsinstock

public

int16 unitsonorder

public

int16 reorderlevel

3、在工程northwindmodel中新增inventorydetail.cs檔案,**如下;

view code

1public

class

inventorydetail 24

public

int16 unitsonorder

5public

int16 reorderlevel 6}

4、更改product.cs**,增加複雜型別「inventorydetail」如下:

view code

1public

class

product24

public

string

productname

5public

intsupplierid

6public

string

quantityperunit

7public

decimal

unitprice

8public inventorydetail inventorydetail

9public

bool

discontinued

10public

category category 11}

注意紅色的部分。

現在可以在測試中用如下**進行查詢庫存詳細資料了:

var outofstockproducts = from c in context.products

where c.inventorydetail.unitsinstock == 0

select c;

POCO系列之 延遲載入

當我們進行查詢的時候,哪些關係的資料將會被載入到記憶體呢?所有相關的物件都需要嗎?在一些場合可能有意義,例如,當查詢的實體僅僅擁有乙個相關的子實體,但是,多數情況下,你可能只需要載入部分資料,或者你喜歡的話,載入更多的資料。在ef4中支援延遲載入功能,那poco是否也支援延遲載入呢。這個答案是肯定的...

辦公軟體系列 之excel應用2

本篇小部落格為excel應用2 問題描述 想在單元格內擷取需要的字串 例子1 字串為 csdn csdn123 csdn123456 擷取第乙個csdn,公式為 mid a1,1,4 具體公式含義為 mid text,start num,num chars text代表乙個文字字串 start nu...

移動應用開發系列 2 mysql

經過一番折騰,apache終於能使用了,接下來記錄下mysql的常用命令。環境 ubuntu 10.04lts mysql 5.1.73 1.安裝登入 sudo apt get install mysql server sudo apt get install mysql admin 控制台程式 s...