Есть ли где-нибудь подробное описание того, как настроить ваши POCO при использовании SimpleRepository с SubSonic 3? Похоже, это соглашение по конфигурации, но я не могу найти, где это соглашение объясняется.
http://www.subsonicproject.com/docs/Conventions выглядит так, как будто оно предназначено для 2.0, а также помечено как неполное. (Кстати: я бы хотел помочь реорганизовать документы в более 2.0 и 3.0, поскольку текущие документы немного сбивают с толку, на какую версию они ссылаются.)
Например, я хотел бы знать, как бы я настроил
отношение один к одному
Пользователь <=> Профиль
class User {
Id
ProfileId instead of Profile? or is Profile profile possible?
}
class Profile {
Id
UserId instead of User? or is User user possible?
}
Отношение один-ко-многим
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?
}
Многие-ко-многим
Полагаю, мне нужно настроить таблицу «многие ко многим»?
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?
}
В примере решения не похоже, что они установлены, поэтому мне интересно, как бы вы поступили (пример моего предположения продолжается):
один-к-одному
User.Profile
r.Single<Profile>(p=>p.User == userId);
родитель на один-ко-многим
Post.User
id = r.Single<Post>(postId).UserId;
r.Single<User>(id); // which kind of stinks with two queries, JOIN?
детей на одного ко многим
User.Posts
r.Find<Post>(p=>p.UserId == userId)
или многие-ко-многим
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? :)
Я бы предположил, что должен быть способ не иметь два запроса и чтобы эти свойства были каким-то образом автоматически сгенерированы. По правде говоря, у меня был всего час, чтобы поиграть со всем прошлой ночью, поэтому я немного боюсь, что Роб кричит на меня. Мне жаль! : P
Если это не autogen'd, то где же представления и процедуры хранения для 3.0? Пожалуйста, дайте мне ссылку на них, пока вы там, товарищ ТАК.