Comment puis-je configurer mon POCO est avec Subsonic 3 et le SimpleRepostitory? ou où est la convention?
-
11-09-2019 - |
Question
Y at-il un endroit qui explique comment configurer votre quand de POCO en utilisant le SimpleRepository avec SubSonic 3? On dirait qu'il est sur la configuration convention, mais je ne peux pas trouver où cette convention est expliquée.
http://www.subsonicproject.com/docs/Conventions ressemble était destiné à 2.0, et est également marquée incomplète. (BTW: J'aimerais aider à réorganiser la documentation en plus un 2.0 et 3.0 que les documents actuels sont un peu confus sur la version qu'ils font référence.)
Par exemple, je voudrais savoir comment je vais au sujet de la mise en place d'un
one-to-one relation
L'utilisateur 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?
}
Un-à-plusieurs
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
Je suppose que je dois installer un grand nombre à plusieurs table?
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?
}
Dans la solution exemple, il ne semble pas que ceux-ci sont définies de sorte que je me demande comment vous allez faire un (je suppose un produit par exemple):
one-to-one
User.Profile
r.Single<Profile>(p=>p.User == userId);
parent sur un à plusieurs
Post.User
id = r.Single<Post>(postId).UserId;
r.Single<User>(id); // which kind of stinks with two queries, JOIN?
enfants d'un à plusieurs
User.Posts
r.Find<Post>(p=>p.UserId == userId)
ou plusieurs à plusieurs
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? :)
Je suppose que il doit y avoir un moyen de ne pas avoir les deux requêtes et ces propriétés à déjà générées automatiquement en quelque sorte. À vrai dire que je n'ai seulement une heure à jouer avec tout hier soir, je suis un peu peur de Rob à me crier dessus. Je suis désolé! : P
Si ceux-ci ne sont pas autogen'd alors où sont vues et procédures stockées pour 3.0? S'il vous plaît me donner un lien pour ceux et pendant que vous y êtes camarade SO'er.
La solution
Ceci est probablement votre meilleur endroit pour commencer: http://subsonicproject.com/docs/Using_SimpleRepository
Les relations sont configurés dans le code, par vous, et nous ne les portent pas avant la DB (encore - bientôt je l'espère). Idéalement vous configurez votre modèle que vous avez besoin et quand vous êtes prêt, vous allez « solidifier » manuellement vos relations dans le DB. Cela permet de réduire les frottements lors du développement -. L'intégrité des données ne sont pas vraiment quelque chose à se soucier lors de la construction d'un site
Cela dit, je sais que les gens veulent cette fonction -. J'ai juste besoin de le construire