Connection Strings
InMemory Datenbank:
services.AddDbContext<TodoContext>(opt => opt.UseInMemoryDatabase("TodoList"));
LocalDb
aus
https://docs.microsoft.com/en-us/ef/core/get-started/aspnetcore/new-db?tabs=visual-studio
var connection = @"Server=(localdb)\mssqllocaldb;Database=EFGetStarted.AspNetCore.NewDb;Trusted_Connection=True;ConnectRetryCount=0";
services.AddDbContext<BloggingContext>
(options => options.UseSqlServer(connection));
leere Web App
Programm.cs startet Webhost mit class Startup und Methode Configure, z.b.:
app.Run(async (context) =>
{
await context.Response.WriteAsync("Hello World!");
});
einfaches Webservice (API)
webApi Template Projekt erstellen - liefert value1, value2 durch ValuesController, der einfach auf GET Request mit Konstantem String antwortet, dazu genügen die Attribute:
[Route("api/[controller]")] // antwortet auf SubDir mit Controllername (schneided Controller Suffix weg)
[ApiController]
in Startup.cs: app.UseMvc();
füge Model Klasse und DbContext hinzu:
Model(s):
public class TodoItem
{
public long Id { get; set; }
public string Name { get; set; }
public bool IsComplete { get; set; }
}
DbContext:
public class TodoContext : DbContext
{
public TodoContext(DbContextOptions<TodoContext> options)
: base(options)
{
}
public DbSet<TodoItem> TodoItems { get; set; }
}
in Startup.cs DbContext hinzufügen:
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<TodoContext>(opt => opt.UseInMemoryDatabase("TodoList"));
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
}
Controller hinzufügen (rechte Maustaste auf Controller Ordner )
1)MVC-Controller leer
2) MVC Controller mit Ansichten unter Verwendung von EF
3) MVC Controller mit Lese/SchreibAktionen
4) API-Controller leer:
[Route("api/[controller]")]
[ApiController]
public class EmptyController : ControllerBase
{
}
5) API-Controller mit Lese/Schreibaktionen:
fügt get, post,put und delete Methoden hinzu, unter Annahme einer id vom Typ int,, gibt string "value" zurück
6) API-Controller mit Aktionen unter Verwendung von EF:
in Maske Context und Modell Klasse auswählen => generiert API mit put, get usw.
Statische Files
schließlich jquery static file dass die api nutzt:
in Startup.onfigure:
app.UseDefaultFiles();
app.UseStaticFiles();