ASP.NET MVC と Entity Framework を使用して新しい小さなプロジェクトを開始しています。(SQL Server - 約 20 の DB テーブル) 過去のプロジェクトで Linq2SQL を使用しましたが、時代遅れのようです。
私はEFのリポジトリパターンの使用に関する多くの投稿を読みました(長所と短所)、私にとっては、リポジトリパターンなしでコーディングする方が良い/簡単に思えます。
次のプロジェクト アーキテクチャを作成しました。
namespace MySite.Models
{
public class User
{
public Int32 ID { get; set; }
public String Email { get; set; }
public String Password { get; set; }
public String Name { get; set; }
public Int32 Gender { get; set; }
}
}
namespace MySite.DAL
{
public class Users
{
public static IEnumerable<User> GetUsers()
{
using (var context = new DatingSiteContext())
{
return context.Users.ToList();
}
}
public static User GetUserByID(int id)
{
using (var context = new DatingSiteContext())
{
return context.Users.Find(id);
}
}
}
namespace MySite.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application.";
var users = DAL.Users.GetUsers();
return View(users);
}
}
}
- このように EF を使用することの欠点は何ですか? (単体テストのサポートがない場合を除く)
- DAL への呼び出しごとに新しい DbContext を作成するのは間違っていますか? パフォーマンスのヒットはありますか?
- EF を使用するための他の推奨構造はありますか? 例?:)
- 新しいプロジェクトで Linq2SQL を使用しますか?
ありがとうございました。
編集:
GetUsers() および GetUserByID() 内のコードは単なる例です。データベースからすべてのレコードを返すことは悪い習慣であることを理解しています (ページングまたは欠落しているフィルター)