在使用带有 SubSonic 3 的 SimpleRepository 时,是否有详细说明如何设置 POCO 的地方?这听起来像是约定优于配置,但我找不到解释该约定的地方。
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? :)
我会假设必须有一种方法可以不使用这两个查询,并且这些属性已经以某种方式自动生成。说实话,虽然我昨晚只有一个小时玩所有东西,所以我有点害怕 Rob 对我大喊大叫。对不起!:P
如果这些不是自动生成的,那么 3.0 的视图和存储过程在哪里?当你在这的时候,请给我一个链接。