すべての Entity Framework コードを含むクラス ライブラリがあります。
ASP.NET MVC プロジェクトを含むいくつかのサブプロジェクトを含むソリューションを開発しています。私のモデルは、ソリューション内の他のさまざまなプロジェクトから使用する必要があるため、別のアセンブリに分割されています。
ソリューションを 3 つの層に分けました。
1) `DAL` (Data Access Layer Entity Framework .EDMX) DATABASE First approach...
2) `Service` layer (will be calling DAL to get data from db....)
3) `UI` (which will be MVC 4 framework)
だから私のサービスプロジェクトでは、データアクセスDLLの参照を持っています
ASP.NET MVC プロジェクトでは、Service プロジェクトの参照があります
ただし、ASP.NET MVC の構築を開始しています。
コントローラーを追加しようとしましたが、DAL からモデル クラスを選択するとエラーが発生しました
Error 1 The type 'myproj_dal.requester' is defined in an assembly that is not referenced. You must add a reference to assembly 'myproj_dal, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. \issoa_ui\Controllers\RequesterController.cs
これが私のコントローラーです:
public ActionResult Index()
{
issoa_service.RequesterService reqService = new issoa_service.RequesterService();
var model = reqService.GetRequesters(); //**<<<ERROR**
return View(model);
}
私の中には、Web.Config
私が持っているものとまったく同じ接続文字列がありますDAL app.config.
これが私のRequesterService
見た目です:
public class RequesterService
{
db_entities edmx = new db_entities();
public IList<Requester> GetRequesters()
{
IList<Requester> model = edmx.Requester.ToList();
return model;
}
}
Model.edmx
>>>>>Model.tt
>>>Requester.cs
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated from a template.
//
// Manual changes to this file may cause unexpected behavior in your application.
// Manual changes to this file will be overwritten if the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace myproj_dal
{
using System;
using System.Collections.Generic;
public partial class Requester
{
public int Id { get; set; }
public string FirstName { get; set; }
public string MiddleName { get; set; }
public string LastName { get; set; }
public string EmailAddress { get; set; }
}
}
私の質問は:
1) 上記のエラーが表示されるのはなぜですか? DAL の参照を UI に追加する必要がありますか? はいの場合、疎結合の目的全体を無効にしています。
2) 正しい方法は何ですか。最善の基準に基づいて行動していない場合。
誰かが私を指摘したり、修正したり、私に叫んだり、ある種の説明にリダイレクトしたり、サンプルプロジェクトが役立つことはありますか?