天天看點

Entity FrameWork複雜屬性摸索

最近公司的項目要用到Entity Framework,裡面牽扯到實體複雜屬性的設計,我摸索了好長時間都沒搞懂這個在模型浏覽器裡該怎麼添加,今晚回來加了一會兒班,總算搞出來了。

下面記錄下是怎麼操作的,以免再次有需要的時候忘記了。

備注:我用的工具是VS2013,選用的Entity Framewok 6.0版本。

建立一個控制台項目,起名“TestProject”,添加一個ADO.Net 實體資料模型,起名“Test”,然後點選添加。

接下來會彈出一個視窗,詢問我們是從資料庫生成21模型還是建立一個空模型,因為我用的是Model First模式,是以我選擇建立空模型。

Entity FrameWork複雜屬性摸索

建立好模型之後,我們添加實體,起名“Employee”。

接下來再給這個實體添加三個标量屬性:Name,Age,Phone和一個複雜屬性HomeTown(由Province,City,Area三個部分組成)。标量屬性直接添加就可以了,我們說說HomeTown這個複雜屬性如何添加。

首先,我們打開VS右側的  “模型浏覽器”  頁籤,在Test(也就是我們建立的實體資料模型的名字)節點下我們可以看到“複雜屬性”這個節點:

Entity FrameWork複雜屬性摸索

右擊它  —— 點選“添加新的複雜屬性”并将其命名為Address,這樣我們就建立了一個複雜屬性,接下來我們給Address添加Province,City,Area這三個标量屬性。

Entity FrameWork複雜屬性摸索

上面這三個屬性都是String類型的。

Entity FrameWork複雜屬性摸索

上面的步驟進行完之後我們就可以給剛剛建立的實體Employee添加這個複雜屬性了,我們右擊實體,點選 新增 —— 複雜屬性,命名為HomeTown,然後設定HomeTown的類型為剛剛建立的Address類型。

Entity FrameWork複雜屬性摸索

到這裡,一個完整的實體模型就建好了,最後我們來生成一下資料庫。

Entity FrameWork複雜屬性摸索
Entity FrameWork複雜屬性摸索
Entity FrameWork複雜屬性摸索

我們接下來插入一條資料試試。

static void Main(string[] args)
        {
            using(TestContainer db = new TestContainer())
            {
                Employee emp = new Employee()
                {
                    Name = "張三",
                    Age = "25",//原諒我,剛剛年齡忘記設成Int型了
                    Phone = "13333333333",
                    HomeTown = new Address() 
                    {
                        Province="江蘇",
                        City="南通",
                        Area="通州"
                    }
                };
                db.EmployeeSet.Add(emp);
                db.SaveChanges();
            }
        }
           
Entity FrameWork複雜屬性摸索