利用LINQ To SQL N-Tier解決するのか
-
09-06-2019 - |
質問
この商品は 少し 成熟したので、そういった知の技術の使用をn段階のソリューションの技術がなかった。
解決
商品になってい層の物語を見ているが、オブジェクトを生成して作成されたクラスまでいるとして組み立てできるもの参照を通じようなWebサービス等
にんにくを使用しておりますのでdatacontext取得したデータに記入して仲介のデータモデルを渡することを通じて、参照で両面を使用するクライアントサイドして引き継いでいくこと、を押してデータを新しいDatacontextはintellgently更新を行後refetchします。
これについて知っておきましょ理解いて:\
私ScottGuに同じ質問を投げかけ、彼のブログを始めた時は、見ている-なるとなかなかない単一のシナリオアプリの利用LINQ to SQLしました。サイトのようなロブ-コネリー氏の店頭に近いのプロバイダです。
他のヒント
Hm、 ロックフォードLhotka 悲しいこの商品は素晴らしい技術を取得データからのデータベースです。について質問したところ、その後彼らはそれなければならな結合"であるドメインのオブジェ"(通称.CSLA objetcs).
真剣に言えば、LINQ to SQLでの支援のための層建築照 DataContext.更新 方法。
するために、 ADO.純企業の枠組み の代替としての商品ではな支援LINQしています。と思う商品ではかなりの程度、軽量-簡単なのに対し、企業の枠組みが重なり大することが可能となります。
OK、思い思います。
挿入/更新したのがはじまりと課題できるラップのビジネスロジックに保存-更新方法例えば
public class EmployeesDAL
{
...
SaveEmployee(Employee employee)
{
//data formatting
employee.FirstName = employee.FirstName.Trim();
employee.LastName = employee.LastName.Trim();
//business rules
if(employee.FirstName.Length > 0 && employee.LastName.Length > 0)
{
MyCompanyContext context = new MyCompanyContext();
//insert
if(employee.empid == 0)
context.Employees.InsertOnSubmit(employee);
else
{
//update goes here
}
context.SubmitChanges();
}
else
throw new BusinessRuleException("Employees must have first and last names");
}
}
のために取得データを取得するデータから複数のテーブルを利用できる保存の手続きはお客様ご自身での結果は匿名できますので返却してから外部の方法です。例えば、保存されている論文集:
public ISingleResult<GetEmployeesAndManagersResult> LoadEmployeesAndManagers()
{
MyCompanyContext context = new MyCompanyContext();
var emps = context.GetEmployeesAndManagers();
return emps;
}
真剣に言えば、LINQ to SQLでの支援のための多層建築の見DataContext.更新方法
ものを読んでこのビジネスロジックラップのDataContextついラップを更新する方法を提案する.
方という伝統的に書く事業目的としてい封止の荷重方法"にBOなどないという名前のメソッドをLoadEmployeesAndManagersることのリストを返します従業員とその即時マネージャー(あたり、逆にします。もそのは私だけでしたが、私の端までいく。LoadEmployeesAndManagers()よりも長LINQます。
とにかく、LINQこんなことになっているかもしれないことなの確認のための文法の正確性):
var emps = from e in Employees
join m in Employees
on e.ManagerEmpID equals m.EmpID
select new
{ e,
m.FullName
};
現在私が理解することができたような気くばりたいこと言うクラスライブラリと呼んでいから私の前なだけに復帰できることはIEnumerable、失わなければならなかったのが私の強い型ます。にんに返還できるよう、強く型付けされたオブジェクトが作られ、自分の会社の社員クラス(プラス、弦の場の管理者名)と上記の結果から私のLINQ to SQL文を返却します。このよう直感的なカウンター...何かの商品を買ってくればいい?
はないかと思いが見を正しく行えるかどうかである;他の啓発によりお願い申し上げます。
"なだけに復帰できることはIEnumerable、失わなければならなかったのが私の強い型の良さ"
ることが間違っています。実際にエラーが強く型付けされた、まさに匿名のタイプです。と思い、クエリにしたいように:
var emps = from e in Employees
join m in Employees
on e.ManagerEmpID equals m.EmpID
select new Employee
{ e,
m.FullName
};
があります。IEnumerable.
こちらは 記事 書いた成長を続けていきます。
Linq to sqlは、ORM.この影響はありませんように設計すると、N段階ます。に使用すると同じように使うその他のORM.
@liammclennan
があります。IEnumerable....Linq to sqlは、ORM.この影響はありませんように設計すると、N段階ます。に使用すると同じように使うその他のORM.
そして思いまだかなりの混乱をきたしている。あり、Linq to Sqlは、ORM;したことがいえまだまだ捨て私のフロント終了コードとのインラインのsql型計算書(linq、sql....もうこの抽象化されたらフロントです。
うメリットは、LINQ決してきました用例として、メソッドになっています。調査を実施しているのは、同じように、なだけに復帰できるのでこの方法:
public class EmployeesDAL
{
public IEnumerable LoadEmployeesAndManagers()
{
MyCompanyContext context = new MyCompanyContext();
var emps = from e in context.Employees
join m in context.Employees
on e.ManagerEmpID equals m.EmpID
select new
{ e,
m.FullName
};
return emps;
}
}
からフロント終了コードによって次のような処理が行わこ
EmployeesDAL dal = new EmployeesDAL;
var emps = dal.LoadEmployeesAndManagers();
このコースを返しますIEnumerable;が使用できませんこのようなその他のORMのように言います場合はもちろん誤解ができないこともあり、逆に例):
txtEmployeeName.Text = emps[0].FullName
こんによる"失わなければならなかったの強力な入力ます。" と思ってい始め同意坩堝;そのLINQ to SQLしたとさせていただいております。もう一度言いますが、私は見ても正しく人に見せてくれ方:)