Kom ihåg mig?

vilket sätt föredrar ni skriva db-uppkopping i c# .NET?

 
Ämnesverktyg Visningsalternativ
Oläst 2016-09-09, 10:33 #3
dAEks avatar
dAEk dAEk är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Dec 2006
Inlägg: 678
dAEk dAEk är inte uppkopplad
Mycket flitig postare
dAEks avatar
 
Reg.datum: Dec 2006
Inlägg: 678
Vet inte vilka behov du har men jag rekommenderar att du labbar lite med EntityFramework om du jobbar med RDBMS. Du kommer bli mer produktiv och det är mycket trevligare att jobba med.

Använd Dependency Injection (DI) istället för att new:a upp dina instanser. Det är sjukt mycket smidigare. DI gör bl.a. att du slipper skriva new Foo(), new Bar(); på olika ställen i koden. DI-containern sköter det åt dig så länge du reggar dina beroenden i ett sorts register.

Startup.cs (eller vad du nu har för entry point i din app):
Kod:
public class Startup
{
	public void Configuration(IAppBuilder app) 
	{
		var builder = new ContainerBuilder();
		builder.Register<IDbConnection>(context => new MySqlConnection(ConfigurationManager.ConnectionStrings["MySQL"].ConnectionString))
			.InstancePerRequest();
		var container = builder.Build();
		
		DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
	}
}
Där du behöver en kopping till databasen specar du bara beroendet i construktorn.
Kod:
public class HomeController : Controller
{
	private readonly IDbConnection connection;
	
	public HomeController(IDbConnection connection) 
	{
		this.connection = connection;
	}
	
	public ActionResult Index() 
	{
		//här finns connection tillgängligt "automagiskt"
	}
	
	public ActionResult About() 
	{
		//här finns connection tillgängligt "automagiskt"
	}
}

Lägg märke till hur tydlig koden blir; för att kunna använda den här klassen behöver man tillhandahålla en implementation av IDbConnection.
Just det här fallet med en Controller är kanske inte det bästa men du fattar säkert principen.
dAEk är inte uppkopplad   Svara med citatSvara med citat
 


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 
Ämnesverktyg
Visningsalternativ

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 12:30.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017