Come impostare il mio POCO di Subsonic con 3 e la SimpleRepostitory io? o dove è la convenzione?
-
11-09-2019 - |
Domanda
C'è un posto che dettagli come impostare di quando si utilizza il SimpleRepository con SubSonic 3 è la tua POCO? Suona come è convenzione sulla configurazione, ma non riesco a trovare dove si spiega tale convenzione.
http://www.subsonicproject.com/docs/Conventions sembra che è stato significava per 2.0, ed è segnato anche incompleta. (BTW: mi piacerebbe aiutare a riorganizzare i documenti in più di un 2.0 e 3.0 come i documenti attuali sono un po 'di confusione su quale versione si riferiscono a.)
Per esempio mi piacerebbe sapere come mi piacerebbe andare su come configurare un
uno-a-uno
User <=> profilo
class User {
Id
ProfileId instead of Profile? or is Profile profile possible?
}
class Profile {
Id
UserId instead of User? or is User user possible?
}
Uno-a-molti
class User {
Id
IList<Post> Posts (?) or IList<int> PostIds (?) or is this implied somehow? or is this just wrong?
}
class Post {
Id
UserId instead of User? or is User user possible?
}
Molti-a-molti
sto cercando di indovinare che avevo bisogno di impostare una molti a molti tavolo?
class User {
IList<Blog> Blogs (?) or IList<int> BlogIds (?) or is this implied somehow?
}
class BlogsUsers { // Do I have to create this class?
UserId
BlogId
}
class User {
IList<User> Users (?) or IList<int> UserIds (?) or is this implied somehow?
}
Nella soluzione esempio, non sembra come questi sono impostati in modo da sto chiedendo come ci si fa a fare una (il mio esempio procede indovinare):
one-to-one
User.Profile
r.Single<Profile>(p=>p.User == userId);
genitore su uno-a-molti
Post.User
id = r.Single<Post>(postId).UserId;
r.Single<User>(id); // which kind of stinks with two queries, JOIN?
i bambini su uno-a-molti
User.Posts
r.Find<Post>(p=>p.UserId == userId)
o molti-a-molti
User.Blogs
ids = r.Find<BlogsUsers>(bu=>bu.UserId == userId);
r.Find<Blog>(b=>b.BlogId == ids); // again with the two queries? :)
Blog.Users
ids = r.Find<BlogsUsers>(bu=>bu.BlogId == blogId);
r.Find<User>(u=>u.UserId == ids); // again with the two queries? :)
presumo che ci deve essere un modo per non avere le due query e per queste proprietà per essere già generati automaticamente, in qualche modo. A dire il vero anche se ho avuto solo un'ora per giocare con tutto quello che la notte scorsa, quindi sono un po 'paura di Rob inveire contro di me. Mi dispiace! : P
Se questi non sono autogen'd allora dove sono punti di vista e le procedure per memorizzare 3.0? Per favore mi dia un link per quelli pure mentre siete a questo collega SO'er.
Soluzione
Questa è probabilmente la miglior punto di partenza: http://subsonicproject.com/docs/Using_SimpleRepository
Le relazioni sono di impostazione nel codice, da voi, e noi non portano avanti quelle al DB (ancora - speriamo presto). Idealmente si imposta il modello di come si deve e quando si è pronti si va e manualmente "solidificare" le relazioni nel DB. Questo è quello di ridurre l'attrito durante lo sviluppo -. Integrità dei dati non è davvero qualcosa di cui preoccuparsi quando si costruisce un sito
Detto questo, so che la gente vuole questa funzione -. Ho solo bisogno di costruirlo