Como faço para configurar o meu POCO com Subsonic 3 eo SimpleRepostitory? ou onde é a convenção?

StackOverflow https://stackoverflow.com/questions/1827630

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.

Foi útil?

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

.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top