一、什么是復(fù)雜類型?

書中說道:“復(fù)雜類型也可視作值類型(?)可以作為附加屬性添加到其他類。復(fù)雜類型與實(shí)體類型的區(qū)別在于復(fù)雜類型沒有其自己的鍵。它是依賴于其"宿主"類型跟蹤變化 和持久化。一個(gè)沒有Key屬性的類型,并且作為屬性映射到一個(gè)或多個(gè)類型中,Code First就會(huì)將其視作為復(fù)雜類型。Code First將預(yù)設(shè)復(fù)雜類型的屬性出現(xiàn)在宿主類型映射到數(shù)據(jù)庫的表中?!?/p>

說簡(jiǎn)單一點(diǎn)就是,項(xiàng)目中有個(gè)類A,這個(gè)A,會(huì)被其他類引用到比如:實(shí)體類B 和 實(shí)體類C,但是建立數(shù)據(jù)庫的時(shí)候,我們不想為這個(gè)分割類A建立表,而是把A類中的屬性等建立到 B 和 C 映射的表中,這時(shí)候,我們管 A 叫做復(fù)雜類型。

二、復(fù)雜類型和實(shí)體類型的區(qū)別

首先還是定義兩個(gè)類Person類和IDCard類還有數(shù)據(jù)庫上下文。

移動(dòng)開發(fā)培訓(xùn),Android培訓(xùn),安卓培訓(xùn),手機(jī)開發(fā)培訓(xùn),手機(jī)維修培訓(xùn),手機(jī)軟件培訓(xùn)

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Data.Entity;using EFCodeFirstModels;using System.Configuration;namespace EFCodeFirstDataAccess
{    public class EFCodeFirstDbContext:DbContext
    {        public EFCodeFirstDbContext() : base("MyStrConn")
        {
        }        public DbSet<Pe