Zunächst einmal kann ich SQL Lite nicht verwenden. Zweitens gibt mir der folgende Code:
Fehler CS1061 'DbContextOptionsBuilder' enthält keine Definition für 'UseInMemoryDatabase' und es konnte keine Erweiterungsmethode 'UseInMemoryDatabase' gefunden werden, die ein erstes Argument vom Typ 'DbContextOptionsBuilder' akzeptiert (fehlt Ihnen eine using-Direktive oder eine Assemblyreferenz?)
Der Code:
var options = new DbContextOptionsBuilder<ProductContext>()
.UseInMemoryDatabase(Guid.NewGuid().ToString())
.Options;
var context = new ProductContext(options);
Kontext
using Memory.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
namespace Memory.Data
{
public class ProductContext : DbContext
{
public ProductContext(DbContextOptions<ProductContext> options) : base(options)
{
}
public DbSet<Category> Categories { get; set; }
public DbSet<Product> Products { get; set; }
}
}
Meine Projekt-CSPROJ-Datei
<ItemGroup>
<PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.0.0" />
<PackageReference Include="Microsoft.AspNetCore" Version="1.1.5" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.1.6" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="1.1.3" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="1.1.5" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="1.1.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="1.1.2" />
<PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="1.1.3" />
</ItemGroup>
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="1.0.3" />
</ItemGroup>
Das genaue Problem ist, dass die Methode einfach nicht verfügbar ist. Ich verstehe nicht warum. Ich brauche Aufklärung zu diesem Thema.
quelle
dotnet add package Microsoft.EntityFrameworkCore.InMemory
Sie benötigen es, um UseInMemoryDatabase zu verwenden
<ItemGroup> <PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="3.0.0" /> </ItemGroup>
quelle
Überprüfen Sie in Ihrem NuGet Package Manager => Pakete für Lösung verwalten , überprüfen Sie alle diese Pakete, ob sie in Ihrer Lösung installiert wurden oder nicht, wie folgt:
Ich habe die gleichen Probleme gelöst, nachdem überprüft wurde, ob alle oben genannten Pakete installiert wurden.
quelle
Visual Studio 2019: Über die Konsole ...
Extras (Menü) -> NuGet Package Manager -> Package Manager - Konsole und geben Sie
dotnet add package Microsoft.EntityFrameworkCore.InMemory
Oder mit dem Paket-Manager ...
Extras (Menü) -> NuGet Package Manager -> NuGet-Pakete für Lösung verwalten -> NuGet (Registerkarte, die geöffnet wurde) -> Suche nach "Speicher" -> Wählen Sie Microsoft.EntityFrameworkCore.InMemory -> Aktivieren Sie das Kontrollkästchen Projekt -> Installieren ( Taste)
Visual Studio CODE: Über das Terminal ...
Wählen Sie am unteren Bildschirmrand Terminal (Registerkarte) aus und geben Sie ein
dotnet add package Microsoft.EntityFrameworkCore.InMemory
quelle