現在、学位プロジェクトの設計に取り組んでいます。数日前、LINQ の勉強を始めました。興味深く、プロジェクトで使用する予定でしたが、ある時点で混乱しています。
LINQ to SQL クラスを追加すると、データベース内の各テーブルに対してエンティティ クラスが自動生成されます。
データベースに 2 つのテーブルがあるとします。
ユーザー
プロジェクト
UserProjects (結合テーブル)
どのユーザーがどのプロジェクトに関連付けられているかを表すジョイント テーブル。
LINQ to SQL クラスは、これら 3 つのクラスを自動生成します。ここで、別の (ユーザーとプロジェクト) クラスをビジネス オブジェクトとして作成するか、これらの自動生成されたエンティティを使用しますか?
また、データベース機能を使用するには、3 層アーキテクチャを使用する必要があります。BLL から LINQ DAL メソッドを直接呼び出すことはできますか?それとも、LINQ DAL のメソッドを呼び出す別の DAL を作成する必要がありますか?
class UserBLL
{
public void saveUser(String username, String password)
{
// here I am calling LINQ DAL from by BLL
UserDataContext db = new UserDataContext();
User u =new User {Username = username, Password = password};
db.user.InsertOnSubmit(u);
db.SubmitChanges();
}
}
上記のメソッド呼び出しシーケンスは問題ありませんか?