Como faço para configurar o meu POCO com Subsonic 3 eo SimpleRepostitory? ou onde é a convenção?
-
11-09-2019 - |
Pergunta
Existe algum lugar que os detalhes sobre a configuração de quando utilizar o SimpleRepository com SubSonic 3 seu POCO? Parece que de convenção sobre configuração, mas eu não consigo encontrar onde esta convenção é explicado.
http://www.subsonicproject.com/docs/Conventions parece que foi destinado a 2,0, e é também marcado incompleta. (BTW:. Eu adoraria ajudar a reorganizar os documentos em mais um 2.0 e 3.0 como os documentos atuais são um pouco confuso sobre qual a versão que eles estão se referindo a)
Por exemplo, eu gostaria de saber como eu iria sobre a criação de um
one-to-one relacionamento
Usuário <=> 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?
}
One-to-many relationship
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?
}
Muitos-para-muitos
Eu estou supondo que eu preciso configurar muitos para muitos tabela?
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?
}
Na solução exemplo, não parece que estes são definidos assim que eu estou querendo saber como você vai fazer sobre a (o meu palpite procede exemplo):
one-to-one
User.Profile
r.Single<Profile>(p=>p.User == userId);
pai de um-para-muitos
Post.User
id = r.Single<Post>(postId).UserId;
r.Single<User>(id); // which kind of stinks with two queries, JOIN?
crianças em um-para-muitos
User.Posts
r.Find<Post>(p=>p.UserId == userId)
ou muitos-para-muitos
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? :)
Eu diria que não tem que ser uma maneira de não ter as duas consultas e para estas propriedades já estar Autogenerated de alguma forma. Verdade seja dita que eu só tinha uma hora para jogar com tudo na noite passada, então eu sou um pouco de medo de Rob gritando comigo. Eu sinto Muito! : P
Se estes não forem autogen'd então onde são vistas e procedimentos de armazenamento para 3.0? Por favor, me dar um link para aqueles bem enquanto você está nisso companheiro SO'er.
Solução
Este é provavelmente o melhor lugar para começar: http://subsonicproject.com/docs/Using_SimpleRepository
Os relacionamentos são configuração em código, por você, e nós não transportar pessoas para a frente para o DB (ainda - espero que em breve). Idealmente, você configurar o seu modelo como você precisa e quando estiver pronto você vai e manualmente "solidificar" suas relações no DB. Isso é para reduzir o atrito durante o desenvolvimento -. Integridade dos dados não é realmente algo para se preocupar quando a construção de um site
Dito isso, eu sei que as pessoas querem esse recurso - Eu só preciso construí-lo
.