簡體   English   中英

EF6和預生成的視圖

[英]EF6 and pre-generated views

我在我的項目中使用EF代碼優先方法。 最近,我使用軟件包管理器控制台將項目的EF版本更新為EF 6

我所有的實體都從BaseEntity類繼承為超類:

public abstract class BaseEntity
{
    public virtual int Id { get; set; }


    States _state;

    [NotMapped]
    public States State { get; set;}

    public enum States
    {
        Unchanged,
        Added,
        Modified,
        Deleted
    }
    ....  
}

而且我也沒有在我的DbContext添加BaseEntity ,程序運行沒有任何問題,但是由於我使用C#的EF6 CodeFirst View Generation T4模板向項目中添加了預生成的視圖,因此在生成視圖時沒有問題,但是當我運行項目時,出現以下錯誤:

當前模型不再匹配用於預生成映射視圖的模型,如ViewsForBaseEntitySets786b989cf4a349108a38357765a23070.MappingHashValue屬性所指示。 如果要改用運行時生成的映射視圖,則必須使用當前模型重新生成或刪除預先生成的映射視圖。 有關實體框架映射視圖的更多信息,請參見http://go.microsoft.com/fwlink/?LinkId=318050

知道有人在哪里嗎? 或者至少是找到問題的方法是什么?

您最有可能遇到了這個錯誤。 標題表明它已在EF 6.1.0 alpha中修復-您可以嘗試此發行版並進行確認嗎? 如果仍然看到錯誤,是否可以在https://entityframework.codeplex.com/WorkItem/Create上創建錯誤? 確保附加模型-如果沒有模型,將很難修復此錯誤。 采取的另一種方法是使用我的另一個項目-交互式EF視圖生成。 您可以在此處此處找到更多詳細信息。 該項目在NuGet上可用。 最后,您的模型真的需要使用預先生成的視圖那么大嗎? 在EF6中,視圖生成已得到了很大的改進(6.1中將進行更多的改進),所以我很好奇您在使用預生成的視圖時是否真的看到應用程序啟動時間有了顯着改善。

暫無
暫無

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

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