0

リポジトリとエンティティ フレームワークを使用してデータ アクセス レイヤー (DAL) をセットアップするのに時間がかかりました。DAL は、ASP.Net MVC 4 アプリケーションと同じソリューション内の別のプロジェクト (クラス ライブラリ プロジェクト) です。ただし、ASP.Net MVC 4 アプリケーションから作成されたデータベースにアクセスできません。

次のエラーが表示されます

ファイル 'H:\Dropbox\TechCenter\Visual Studio 2012\Projects\TxValueCardProject\TxValueCardProject.Presentation\App_Data\TxValueCardProject.DataAccessLayer.TxDBContext.mdf' をデータベース 'TxValueCardProject.DataAccessLayer.TxDBContext' として添付できません。

私のDALにはPOCOクラスがあります:

public class Customer
    {
        public int CustomerId { get; set; }
        public int RetailerId { get; set; }
        public string  CustomerName { get; set; }
        public string CustomerEmail { get; set; }
        public int PointsBalance { get; set; }
        public decimal CashBalance { get; set; }

        public ICollection<LoyaltyCard> LoyaltyCards { get; set; }
        public virtual Retailer Retailer { get; set; }
    }

そして DBContext クラス

public class TxDBContext:DbContext
    {
        public DbSet<Customer> Customer { get; set; }

     }

そして、このリポジトリ

  public class CustomerRepository : IRepository<Customer>
    {
        TxDBContext context = new TxDBContext();

        public IQueryable<Customer> All
        {
            get { return context.Customers; }
        } 
    }

このセットアップでは、すべてが DAL で正常に動作し、すべてのユニット テスト パスが実行され、SQL MS から DB を確認できます。ASP.Net MVC 4 プロジェクトに切り替えて、適切な参照と Usings とすべてが正常にビルドされた場合を除いて、そのような単純な DB アクセスを試みますが、失敗します

namespace TxValueCardProject.Presentation.Controllers
{
    public class CustomerController : Controller
    {
       public ViewResult Index()
        {
            var custRepo = new CustomerRepository();
            var customersInDb = custRepo.All;
            return View(customersInDb);
        }

ビューは単純なループ文です@foreach (var item in Model)

助けてください、何が欠けているか、間違っていますか?

4

0 に答える 0