どうすればセットアップ私のPOCOの3亜音速とSimpleRepostitoryでいますか?またはどこ規則はありますか?
-
11-09-2019 - |
質問
どのように亜音速の3とセットアップあなたのPOCOのSimpleRepositoryを使用してに詳細どこかにはありますか?それは設定より規約だように聞こえるが、私はその大会が説明されている場所を見つけることができません。
それがあったように、http://www.subsonicproject.com/docs/Conventions に見えます2.0のためのもの、とも不完全でマークされています。 (ところで:私は、現在のドキュメントは、彼らが参照されているバージョンで少し混乱しているように、より2.0および3.0にドキュメントを再編成を支援してみたい)
私はセットアップに取り掛かるだろう方法を知りたいのですが例えば
1対1の関係
ユーザー<=>プロファイル
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?
}
それはこれらのように見えるしていません例のソリューションでは、私はあなたが(私の推測が進む例を)やって行くだろうか思ったんだけどように設定されます:
1対1
User.Profile
r.Single<Profile>(p=>p.User == userId);
1対多の親
Post.User
id = r.Single<Post>(postId).UserId;
r.Single<User>(id); // which kind of stinks with two queries, JOIN?
1対多の子供
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? :)
私は、これらの特性は、すでに何らかの方法で自動生成されるために2つのクエリを持っていない方法とがあるように持っていることを前提としています。私はので、私はロブが私に叫んの少し怖い昨夜すべてを再生する時間を持っていなかったものの真実を言われます。申し訳ありません! :P
これらは、その後autogen'dされていない場合は、ここで、3.0のためのビューとストアドプロシージャはありますか?あなたはそれ仲間SO'erにいる間、私は同様にそれらのリンクをお願いします。
解決
これはおそらく開始するには、あなたの最高の場所です。 http://subsonicproject.com/docs/Using_SimpleRepositoryする
の関係はあなたによって、コードに設定されている、と我々は(まだ - うまくいけばすぐに)DBにそれらの前進を運ぶことはありません。あなたがする必要があるとあなたは準備ができたら、あなたが行くと、手動でDBのあなたの関係を「固化」として理想的には、あなたのセットアップモデル。これは、開発中の摩擦を軽減することである - データの整合性は、実際にサイトを構築するときに心配するものではありません。
。私は人々がこの機能をしたい知って、言った - 私はそれを構築する必要があります。
。