如何设置我的POCO的亚音速3和SimpleRepostitory?或者是惯例?
-
11-09-2019 - |
题
有没有什么地方,详细说明如何设置你的POCO使用SimpleRepository亚音速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?
}
1对多的关系
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
如果这些不然后在那里是示和存储程序3.0 autogen'd?请给我一个链接,那些,以及当你在它的同胞SO'er。
解决方案
这可能是开始你的最好的地方: http://subsonicproject.com/docs/Using_SimpleRepository
关系在代码设置,由你,我们不要携带那些期待的DB(尚 - 很快希望)。理想情况下,你设置你的模型,因为你需要,当你准备好你去手动“巩固”你在DB关系。这是为了降低开发过程中的摩擦 - 数据的完整性是不是真的值得忧虑建立一个网站时
这是说,我知道人们想知道这个功能 - 我只需要构建它
不隶属于 StackOverflow