[英]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仍然采用舊的傳統生成策略。
你需要什么:
使用Nuget更新所有項目到EF 6版本
對於C#下載http://visualstudiogallery.msdn.microsoft.com/66612113-549c-4a9e-a14a-f629ceb3f89a
對於VB.net下載http://visualstudiogallery.msdn.microsoft.com/ff479d55-2c85-43c5-a4d6-21cd659435ea
安裝其中一個擴展后,您需要備份您的edmx和設計器文件(或使用源代碼管理)。 重新啟動Visual Studio。
重新啟動Visual Studio后,您想進入您的項目並:
T4
這將為您提供ObjectContext
派生的上下文以及與較新的EF 6.0名稱空間匹配的所有內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.