Wie richte ich mit Subsonic meine POCO 3 und der SimpleRepostitory? oder wo ist die Konvention?
-
11-09-2019 - |
Frage
Gibt es irgendwo, dass die Einzelheiten zum Einrichten Ihres POCO wenn die SimpleRepository mit SubSonic 3 verwendet? Es klingt wie es Konvention über Konfiguration ist, aber ich kann nicht finden, wo diese Konvention erklärt.
http://www.subsonicproject.com/docs/Conventions sieht aus wie es war bedeutete für 2.0 und ist auch unvollständig markiert. (BTW: Ich würde gerne die Dokumentation helfen, neu zu organisieren mehr in einem 2,0 und 3,0, wie die aktuellen docs ein wenig verwirrend, auf denen Version, die sie sich beziehen.)
Zum Beispiel würde ich gerne wissen, wie ich über das Einrichten von a gehen würde
Eins-zu-Eins-Beziehung
User <=> Profil
class User {
Id
ProfileId instead of Profile? or is Profile profile possible?
}
class Profile {
Id
UserId instead of User? or is User user possible?
}
One-to-many-Beziehung
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?
}
Many-to-many
Ich vermute, ich viele, viele Tabelle einrichten bräuchten?
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?
}
Im Beispiel Lösung ist es nicht wie diese scheint so eingestellt sind, frage ich mich, wie Sie ein (meine Vermutung Erlös Beispiel) zu tun gehen würden:
one-to-one
User.Profile
r.Single<Profile>(p=>p.User == userId);
Eltern auf einer Eins-zu-viele
Post.User
id = r.Single<Post>(postId).UserId;
r.Single<User>(id); // which kind of stinks with two queries, JOIN?
Kinder auf einer Eins-zu-viele
User.Posts
r.Find<Post>(p=>p.UserId == userId)
oder many-to-many
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? :)
Ich würde davon ausgehen, dass es muss ein Weg, um nicht die zwei Abfragen haben und für diese Eigenschaften schon in irgendeine Weise automatisch generiert werden. Die Wahrheit zu sagen, obwohl ich nur eine Stunde habe mit allem, was gestern Abend zu spielen, so dass ich eine wenig Angst vor Rob schreit mich an. Es tut mir Leid! : P
Wenn diese dann nicht sind autogen'd wo sind Ansichten und gespeicherten Prozeduren für 3.0? Bitte geben Sie mir einen Link für diejenigen, auch während man es Kollegen SO'er sind.
Lösung
Dies ist wahrscheinlich die beste Wahl zu starten: http://subsonicproject.com/docs/Using_SimpleRepository
Beziehungen sind Setup in Code, von Ihnen, und wir stimmen nicht mit denen sie auf die DB (noch - hoffentlich bald) tragen. Im Idealfall Sie Setup-Modell, wie Sie benötigen und wann Sie bereit sind, Sie gehen und manuell „erstarren“ Ihre Beziehungen in der DB. Dies ist die Reibung während der Entwicklung zu reduzieren -. Datenintegrität ist nicht wirklich etwas zu befürchten, wenn der Aufbau eine Website
Das heißt, ich kenne Leute, um diese Funktion wollen -. Ich kann es nur bauen müssen