簡體   English   中英

實體框架4.3.1到6 EDMX(ObjectContext)

[英]Entity Framework 4.3.1 to 6 EDMX (ObjectContext)

我正在嘗試將項目從EF 4.3.1升級到EF 6.0

該模板使用ObjectContext ,現在,每當我更改模板時,它都會使用舊的EF 4.3.1命名空間覆蓋* .Designer.cs文件中生成的代碼,因此構建會中斷。

有什么方法可以阻止這種情況發生嗎? 我看不到一個* .tt文件。 重新生成EDMX並不是一個真正的選擇,因為對概念模型進行了重要的定制(我已經有好幾天了!)。

我嘗試創建一個新的EDMX作為測試,並表現出同樣的問題。 只要我將代碼生成更改為ObjectContext用法的'Default',就會使用舊的命名空間編寫EDMXName.Designer.cs文件。

using System;
using System.ComponentModel;
using System.Data.EntityClient;
using System.Data.Objects;
using System.Data.Objects.DataClasses;
using System.Linq;
using System.Runtime.Serialization;
using System.Xml.Serialization;

這讓我分心 - 我想我將不得不將其破解為EF 5.0

我已經解決了這個問題。 這是因為您已經從EF 5.X升級到EF 6.X,您的edmx仍然采用舊的傳統生成策略。

你需要什么:

安裝其中一個擴展后,您需要備份您的edmx和設計器文件(或使用源代碼管理)。 重新啟動Visual Studio。

重新啟動Visual Studio后,您想進入您的項目並:

  1. 進入圖表設計界面
  2. 右鍵單擊並選擇“添加代碼生成項”
  3. 選擇“EF 6.X實體對象生成器”並將其稱為適當的類似“Template.tt”
  4. 讓這一代發生
  5. 回到設計界面,確保代碼生成策略現在為T4
  6. 刪除舊版EF 5.X創建的設計器文件

這將為您提供ObjectContext派生的上下文以及與較新的EF 6.0名稱空間匹配的所有內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM