webForumDet fria alternativet

Frågegränssnitt för datalager

.NET

3 svar · 249 visningar · startad av Jon

Medlem sedan juli 20011 304 inlägg
Frågan#1

Har som tidigare sagts byggt ett litet dal.

I dagsläget kan man bara gör operationer som:
dal.GetObject(id, typeof(någonKlass));
dal.GetObjects(typeof(någonKlass));
dal.SaveObject(objektet);
dal.SaveObjects(IList);

Nu står jag inför problemet att bygga någon sorts frågegränssnitt.
Jag vill ju inte allt ska hämtas alltid eller bara kunna hämta ett objekt på dess id.

Någon som har gjort något liknande eller har några smaskiga länkar?
Google har nämligen varit osedvanligt snålt i ämnet...

Medlem sedan maj 20012 812 inlägg
#2

Du kan bygga det hur avancerat du vill, men en bra början är väl att skapa ett nytt objekt som hanterar WHERE vilkor. Där du iprincip, skickar in:

Namnet på variablen som man vill kolla på (alltså det skall omvandlas till kolumn i databasen), sedan något värde, och sist vilken operator som skall användas.

så när du vill hämta alla object för kunder där förnamnet är Magnus, blir det något sånt här.

CWhere where = new CWhere();
where.Column = "FirstName";
where.Operator = EnumOperator.Equal;
where.Value = "Magnus";

dal.GetObject(typeof(contact), where);

Detta är bara ett förslag, själv har jag löst det genom att alltid kalla på en SP. Men funderar på bygga en lösning där man använder inlineSQL istället (om man orkar).

Kolla annars på https://www.asp.net och i formuet: Architectur, där kan du säkert få svar om du söker lite, O/R mappers diskuteras flittigt där.

- M

Medlem sedan juli 20011 304 inlägg
#3

JA. Det känns bra :)

jag tenderar att tänka lite för stort ibland och det kan ju som du påpekar bli precis hur kompicerat som helst. Särskilt om jag vill ha med aggregatfunktioner o dyl. Då kommer ju inte ens mina dataklasser att fungera som dom ser ut nu...

Medlem sedan okt. 2002188 inlägg
#4

Kika lite på hur de löst det i vissa opensource projekt. :)

(Har en känsla av att du fått det svaret innan.)

OJB har ett ganska vettigt gränssnitt för att ställa frågor.

Hibernate, Nhibernate är dött , deras interface eller vad man skall kalla det har fårr väldigt bra kritik.

Jag håller precis på å tittar på ett opensource projekt som heter Sisyphus, och där kan man skapa klasser som hämtar värden för en viss klass.. Jag tycker detta verkar väldigt nice, har bara testat det till en viss del men det som jag tycker om är att man inte är låst till funktionerna som är inbyggda i "frågeinterfacet" utan man kan skriva sql kod direkt i dessa frågeklasser och sen skicka in parameters. Visst det blir lite sqlkod i affärslagert men..

270 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)
118 ms — ändringar (db)