¿Cómo puedo configurar mi POCO de la primera mezcla 3 y el SimpleRepostitory? o ¿dónde está la convención?
-
11-09-2019 - |
Pregunta
¿Hay algún lugar que detalla cómo configurar de cuando se utiliza el SimpleRepository con SubSonic 3 su POCO? Suena como si fuera convención sobre configuración, pero no puedo encontrar donde se explica que la convención.
http://www.subsonicproject.com/docs/Conventions parece que fue destinado a 2,0, y también está marcado incompleto. (Por cierto: me encantaría ayudar a reorganizar los documentos en más de un 2.0 y 3.0 como los documentos actuales son un poco confusos de la versión que se están refiriendo.)
Por ejemplo me gustaría saber cómo me gustaría ir sobre la configuración de un
uno-a-uno
El usuario <=> perfil
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-muchos relación
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?
}
Muchos-a-muchos
supongo que había necesidad de configurar una mesa de muchos a muchos?
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?
}
En el ejemplo de solución que no parece que éstos están situados de modo que me pregunto cómo le gustaría ir haciendo un (mi ejemplo guess procede):
uno-a-uno
User.Profile
r.Single<Profile>(p=>p.User == userId);
padre en una-a-muchos
Post.User
id = r.Single<Post>(postId).UserId;
r.Single<User>(id); // which kind of stinks with two queries, JOIN?
niños en uno-a-muchos
User.Posts
r.Find<Post>(p=>p.UserId == userId)
o muchos-a-muchos
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? :)
Me gustaría asumir que no tiene que haber una manera de no tener las dos consultas y para que estas propiedades ya ser generados automáticamente de alguna manera. A decir verdad pesar de que sólo tenía una hora para jugar con todo la noche anterior, así que estoy un poco de miedo de Rob gritarme. ¡Lo siento! : P
Si no se autogen'd entonces dónde son vistas y procedimientos para almacenaje de 3.0? Por favor, dame un enlace para aquellos tan bien mientras estás en ello compañero SO'er.
Solución
Este es probablemente el mejor lugar para empezar: http://subsonicproject.com/docs/Using_SimpleRepository
Las relaciones son de configuración en el código, por ti, y que no llevan los que llegue el DB (todavía - esperemos que pronto). Lo ideal es que la configuración de su modelo como sea necesario y cuando esté listo vas y manualmente "solidificar" sus relaciones en la base de datos. Esto es para reducir la fricción durante el desarrollo -. Integridad de los datos no es realmente algo que preocuparse de la hora de construir un sitio
Dicho esto, sé que la gente quiere esta característica -. Sólo tengo que construirlo