第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

實體框架,ASP.NET,缺少上下文

實體框架,ASP.NET,缺少上下文

C#
UYOU 2022-10-23 13:39:16
我是新來的(并且仍然是新手編碼),很抱歉,如果我問錯或愚蠢......我正在嘗試使用 Troelsen 的書 Pro C# 7 with .NET and .NET Core,但我堅持第 29 章開始。主要目標(biāo)是創(chuàng)建一個 ASP.NET MVC(名為 CarLotMVC)解決方案。正如書中所說,我創(chuàng)建了 ASP 項目,然后我嘗試插入另外兩個項目(AutoLotDAL 和 AutoLotDAL.Models)。我做的和書中寫的完全一樣,但是當(dāng)我嘗試向 ASP 項目添加一個新的控制器時,我看不到上下文,只能看到 ASP 項目的模型類。我下載了源代碼,將 AutoLotDAL 和 AutoLotDAL.Models 項目添加到解決方案中,修改了連接字符串、命名空間,但仍然看不到上下文或模型類。腳手架菜單 - 缺少模型有什么問題?在 AutoLotDAL 項目中有遷移類,我試圖刪除數(shù)據(jù)庫并再次創(chuàng)建,但這并沒有幫助。嘗試使用管理員運行 Visual Studio,清理解決方案并重新構(gòu)建。我只看到了一次上下文,解決方案中有多個錯誤,VS 在沒有我?guī)椭那闆r下創(chuàng)建了 Controller 類,但是當(dāng)我稍后重新打開時,解決方案都消失了。這是上下文:public partial class AutoLotEntities : DbContext{    public AutoLotEntities()        : base("name=AutoLot")    {    }    protected override void Dispose(bool disposing)    {    }    private void OnSavingChanges(object sender, EventArgs eventArgs)    {        var context = sender as ObjectContext;        if (context == null) return;        foreach (ObjectStateEntry item in            context.ObjectStateManager.GetObjectStateEntries(EntityState.Modified | EntityState.Added))        {            if ((item.Entity as Inventory) != null)            {                var entity = (Inventory)item.Entity;                if (entity.Color == "Red")                {                    item.RejectPropertyChanges(nameof(entity.Color));                }            }        }    }    private void OnObjectMaterialized(object sender, ObjectMaterializedEventArgs e)    {    }    public virtual DbSet<CreditRisk> CreditRisks { get; set; }    public virtual DbSet<Customer> Customers { get; set; }    public virtual DbSet<Inventory> Cars { get; set; }    public virtual DbSet<Order> Orders { get; set; }    protected override void OnModelCreating(DbModelBuilder modelBuilder)    {        modelBuilder.Entity<Inventory>()            .HasMany(e => e.Orders)            .WithRequired(e => e.Car)            .WillCascadeOnDelete(false);    }}
查看完整描述

2 回答

?
哈士奇WWW

TA貢獻1799條經(jīng)驗 獲得超6個贊

通過將 CarLotMVC.csproj 文件中的一個部分從本書的解決方案復(fù)制到我的項目中,我找到了解決此問題的方法。


首先導(dǎo)航到本書解決方案代碼中的 ..\pro-csharp-7-master\Chapter_29\CarLotMVC\CarLotMVC 目錄,然后在文本編輯器中打開 CarLotMVC.csproj 文件。


找到以下元素并將其復(fù)制到剪貼板:


  <ItemGroup>

    <ProjectReference Include="..\AutoLotDAL.Models\AutoLotDAL.Models.csproj">

      <Project>{9a917d7c-885e-4d9a-818f-9955871a4fbb}</Project>

      <Name>AutoLotDAL.Models</Name>

    </ProjectReference>

    <ProjectReference Include="..\AutoLotDAL\AutoLotDAL.csproj">

      <Project>{7e5a8812-c303-4ae0-a6e7-4ac96ec11624}</Project>

      <Name>AutoLotDAL</Name>

    </ProjectReference>

  </ItemGroup>

通過打開 AutoLotDAL 項目中的 AutoLotDAL.csproj 和 AutoLotDAL.csproj 中的 AutoLotDAL.Models.csproj 并將 ProjectGuid 標(biāo)記與復(fù)制的元素中指定的值進行比較,確認(rèn)項目 guid 與 AutoLotDAL 和 AutoLotDAL.Models 項目中的 guid 匹配從書中的解決方案。


以下是我的 AutoLotDAL.csproj 中的第 7 行:


<ProjectGuid>{7E5A8812-C303-4AE0-A6E7-4AC96EC11624}</ProjectGuid>


使用相同的文件轉(zhuǎn)到您的項目目錄并在文本編輯器中打開它。找到以下塊(我的文件中的第 185 行):


  <ItemGroup>

    <Folder Include="App_Data\" />

    <Folder Include="Models\" />

  </ItemGroup>

并將解決方案文件中的元素粘貼到它之后。


現(xiàn)在,在同一個文件中找到以下元素(我的文件中的第 49 行):


    <Reference Include="AutoLotDAL">

      <HintPath>..\AutoLotDAL\bin\Debug\AutoLotDAL.dll</HintPath>

    </Reference>

    <Reference Include="AutoLotDAL.Models">

      <HintPath>..\AutoLotDAL.Models\bin\Debug\AutoLotDAL.Models.dll</HintPath>

    </Reference>

并注釋掉或刪除這些行。


保存文件并再次嘗試添加控制器。該項目通過這些更改為我工作。


查看完整回答
反對 回復(fù) 2022-10-23
?
慕后森

TA貢獻1802條經(jīng)驗 獲得超5個贊

除了將 AutoLotDAL 和 AutoLotDAL.Models 項目添加到解決方案之外,您還必須在 CarLotMVC 項目中添加對這些項目的引用。您可以在此處找到有關(guān)該主題的文檔。

完成此操作后,您必須重新編譯您的項目。如果它編譯沒有任何錯誤,您應(yīng)該在腳手架對話框中看到 Context 和 Model 類。


查看完整回答
反對 回復(fù) 2022-10-23
  • 2 回答
  • 0 關(guān)注
  • 155 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號