7

VS 2010、MVC3、および EF 5 を使用して Web サイトで連絡先ログを作成しています。エンティティは最初にコードを使用して作成されます。データは、SQL Server 2008 R2 の一連のデータベースに格納されます。コンタクトログの概要を表示したいので、ビューを作成しました。

CREATE VIEW dbo.ContactLogSummaries

AS

SELECT
    CLE.ContactLogEntryID,
    CLE.CaseID,
    'Test' AS ContactName,
    EU.UserName As OfficeUser,
    CLE.DateAndTimeOfContact,
    CLC.Category,
    CLE.ContactDetails

FROM
    ContactLogEntries AS CLE
    JOIN
    ContactLogCategories AS CLC
    ON CLE.ContactLogCategoryID = CLC.ContactLogCategoryID
    JOIN
    Control.dbo.EndUsers AS EU
    ON CLE.UserID = EU.EnduserID

Contact Log データベースには 2 つのエンティティ (ContactLogEntriesおよびContactLogCategories) があり、別のデータベースにはデータベースの最初のエンティティControl.dbo.EndUsersがあります。連絡先ログには、多数のレコードが含まれる場合があります。特定のケースの記録だけを表示できるようにしたい。

私の質問は2つの部分に分かれています:

  1. SQL ビューを直接使用して、要約を Web ページに表示することはできますか (おそらくそれをクラスに読み込むことによって)
  2. SQL ビューに相当するコード ファースト オブジェクトを作成できますか?
4

2 に答える 2

23

TableAttribute (データ注釈)、または Fluent Mappings の ToTable を使用して、エンティティをビューに直接マップすることができます...

たとえば、データ注釈の使用:

using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

public namespace whatever.mynamespace

    [Table("dbo.ContactLogSummaries")] //<-- this is your view
    public class ContactLogSummary
    {
        ...
    }
}
于 2014-04-14T23:29:47.387 に答える