Tagi na forum.

Windows 14205 SQL Server 2132
sieci 6796 Windows XP 1921
SQL 6578 Outlook 1838
SBS 3868 Uprawnienia 1777
Windows 2003 2781 IIS 1636
Windows Server 2588 Office 1516
DNS 2315 Skrypt 1499

pokaż wszystkie tagi na forum

Baza danych MSSQL połączenie w projekcie

uraharu 2011-04-04 22:07:52
0
avatar
 
 
Trochę się zgubiłem odnośnie połączenia bazy danych z projektem. Istnieje wiele metod dostepu do bazy danych, Entity Framework, LINQ i pewnie jeszcze więcej.
 
Jak stworzyć połączenie z bazą danych i w jaki sposób pisać polecenia SQL aby po przeniesieniu projektu na serwer nie było problemów z aplikacją?
 
Utworzyłem przykładowy projekt aby poćwiczyć to zagadnienie, wykonałem tutoriala ze strony asp.net i połączenie z bazą wyglądało tak:
 
dodajemy connection stringa

<add name="MusicStoreEntities"connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;
AttachDBFilename=|DataDirectory|\MvcMusicStore.mdf;User Instance=true"providerName="System.Data.SqlClient" /></connectionStrings></configuration>
 

i tworzymy klase DatabaseEntity.cs
 
 

using System.Data.Entity;namespace MvcMusicStore.Models{public class MusicStoreEntities : DbContext{public DbSet<Album> Albums { get; set; }public DbSet<Genre> Genres { get; set; }}}
 

 
wtedy polecenia sqla sprowadzają się do postaci
_db.Save()
_db.Add()
 
Natomiast na stronie microsoftu są jeszcze inne metody
http://www.asp.net/mvc/tutorials/creating-model-classes-with-the-entity-framework-cs
oraz
http://www.asp.net/mvc/tutorials/creating-model-classes-with-linq-to-sql-cs
 
Czy wybór któregoś ze sposobów ma jakiś wpływ na działanie aplikacji na serwerze?
Chciałbym utworzyć bazę danych w SQL Server Management Studio a następnie podpiąć ją pod projekt, w jaki sposób takie cośwykonać? Czy musze dodawać katalog App_Data?
Jak pisać zapytania SQLa aby wszystko sprawnie działało na serwerze?
ASP.NET MVC 3
Edytowano 1 raz. Ostatnio 2011-04-04 22:18:19 przez uraharu.
tagi: ASP.NET   LINQ   mvc   SQL   SQL Server


jak0b  2011-04-08 15:13:45 #1
0
avatar
 
 
Hmm od czego zacząć...
Po pierwsze EF lub Linq to SQL to tzw. OR mappery, inny polularny dla .net to NHibernate.
OR mapper ma cię odgrodzić od tego brzydkiego (w mniemaniu twórców) sql i dać obiektowy model danych.
Mechanizmy tych or mapperów pod spodem używają ADO .NET do łączenia się z bazą, więc potrzebują na wstępie poprawnego connection stringa do bazy (czyli to co masz w configu). Możesz jawnie używać ado tworząc (dla MS SQL Server) SqlConnection, SqlCommand, wykonać je i pobrać wyniki (SqlDataReader). Dla providerów do innych systemów baz danych klasy nazwyają się podobnie inny jest przedrostek zamianst "Sql".
 
Metody jakie masz opisane na asp.net pokazują użycie EF i linq2sql.
 
Wybór jednego z or mapperów, czy innej metody komunikowania się z bazą, ma oczywisty wpływ na działanie aplikacji, nie tylko na serwerze, a konkretnie na architekrurę. Każde rozwiązanie ma wady i zalety. Trzeba wiedzieć jakie są ograniczenia i ewentualnie jak w szczególnych przypadkach je obchodzić, czy radzić sobie z nimi, dostosowywując się do wymagań.
Zapytania linq tworzone na obiektach or mapperów czasem są bardzo niewydajne lub generują wiele zapytań do bazy. Warto wiedzieć jak zapytania linq są przekształcane przez EF czy linq2sql na kod sql.
Generalnie MS rozwija EF, a linq2sql zaniechał. EF na większe możliwości, których brakowało linq2sql.--If the facts don't fit the theory, change the facts.

If the facts don't fit the theory, change the facts.

Udziel odpowiedzi

avatar
Treść wpisu:

Zaloguj się lub Zarejestruj się aby wykonać tę czynność.

Idź na górę strony