AnatoliiG が述べたように、手動でビューを作成する必要があります。(テーブルにインデックスを追加する)。
ビューの名前を属性としてクラスに追加します
[Table("UserDTO")]
public class UserDTO
{
/* Class code here */
}
最後に -IgnoreChanges 属性を指定することで、空の移行を作成できます
Add-Migration MigrationName -IgnoreChanges
これにより、手動で変更できる空の移行スクリプトが得られます。
db コンテキストを使用して、移行スクリプトでコードを実行できます
public partial class editUserDTO : DbMigration
{
public override void Up()
{
string script =
@"
CREATE VIEW dbo.UserDTO
AS SELECT p.PersonId AS UserId, p.FirstName, p.LastName, u.UserName
FROM dbo.Users u
INNER JOIN dbo.People p ON u.PersonId = p.PersonId";
BloggingContext ctx = new BloggingContext();
ctx.Database.ExecuteSqlCommand(script);
}
public override void Down()
{
BloggingContext ctx = new BloggingContext();
ctx.Database.ExecuteSqlCommand("DROP VIEW dbo.UserDTO");
}
}