2016-07-29 9 views
-1

Entity Frameworkコンテキストを使用しているデータベースにはビューがあります。 vwReportMonths。返されるのは、報告が必要なテーブルのレコードの月の開始日に対応する日付のセットです。ビューは正常に動作し、適切な日付を返します。Entity Frameworkはデータベースビューを見つけることができません

私は

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 

namespace Cards 
{ 
    public class ReportMonthView 
    { 
     public DateTime CardMonth { get; set; } 
    } 
} 

私のモデルを作成したと私は、マッピングクラスを作成しました:

using Card; 
using System; 
using System.Collections.Generic; 
using System.Data.Entity.ModelConfiguration; 
using System.Linq; 
using System.Text; 

namespace DAL.Card.Mapping 
{ 
    class ReportMonth_Mapping : EntityTypeConfiguration<ReportMonthView> 
    { 
     public ReportMonth_Mapping() 
     { 
      ToTable("dbo.vwReportMonths"); 

      HasKey(x => x.CardMonth); 
     } 
    } 
} 

そして私は、私が使用してコンテキスト内で私のOnModelCreatingメソッドにマッピングを追加します。

modelBuilder.Configurations.Add(new TrendReportMonth_Mapping()); 

また、コンテキスト内でDbSetを作成しました。

public DbSet<ReportMonthView> ReportMonths { get; set; } 

しかし、私は私のアクセスコントローラからビューにアクセスしようとすると、それは無効なオブジェクト名をスロー「dbo.vwReportMonthView」

public JsonResult GetReportMonths() { 

     var data = _safetyContext.TrendReportMonths; 
     return Json(data, JsonRequestBehavior.AllowGet); 
    } 

私は何をしないのですか?私はEFと昨日のエピファニーがあると思ったが、明らかにそうではなかった。

すべてのヘルプをもう一度おねがいします。

+0

ToTable( "vwReportMonths")を試しましたか? ? –

+0

はい、私はToTable( "CardDB.dbo.vwReportMonths")とToTable( "CardDB.vwReportMonths")も同じ結果を試しました。 –

+0

他のすべてのDbSetsが動作し、設定を確認しましたか? –

答えて

0

私はついに答えを見つけました。以前の開発者は私に悪い情報を与えました。間違ったデータベースで私の意見を全部作りあげていました。接続文字列をダブルチェックすると、私は間違いを見ました。シニア開発者の指示を聞く必要はありません。私は最初にチェックすることから始めます。

関連する問題