首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

Entity Framework 中級學習(一):手動實作複雜類型

     編輯:關於ASP.NET

EF 早期版本設計器不支援複雜類型,需手動修改 EDMX(CSDL/MSL)方能使用。本文以 Northwind Customers 表為例,將 Address、City、Region、Country、PostalCode 合併為複雜類型 CommonAddress。

操作步驟

  1. 產生 EDMX 模型(設計器或 EdmGen.exe)。
  2. 以文字編輯器開啟 EDMX(可暫改 .xml 副檔名於 VS 編輯)。
  3. 修改 CSDL:於 <EntityType Name="Customers"> 移除原五個純量屬性,新增 <Property Name="Address" Type="NorthwindModel.CommonAddress" Nullable="false" />;並補上 <ComplexType Name="CommonAddress"> 定義五個子屬性。
  4. 修改 MSL:將實體屬性對應至資料表欄位,ComplexProperty 內對應各子屬性。
  5. 重新生成模型類別(儲存 EDMX 或執行自訂工具)。

CSDL 片段

<EntityType Name="Customers">
  <Key><PropertyRef Name="CustomerID" /></Key>
  <Property Name="CustomerID" Type="String" ... />
  ...
  <Property Name="Address" Type="NorthwindModel.CommonAddress" Nullable="false" />
  ...
</EntityType>

<ComplexType Name="CommonAddress">
  <Property Name="Address" Type="String" MaxLength="60" ... />
  <Property Name="City" Type="String" MaxLength="15" ... />
  <Property Name="Region" Type="String" MaxLength="15" ... />
  <Property Name="PostalCode" Type="String" MaxLength="10" ... />
  <Property Name="Country" Type="String" MaxLength="15" ... />
</ComplexType>

完成後即可在程式碼以 customer.Address.City 等屬性存取,提升領域模型表達力。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved