1

TableではなくViewMappingがサポートされていないため、EFCodeFirstに不満を感じています。だから私はExecuteSqlCommandからビューデータクラスを取得することに切り替えています。しかし、私はこれを行う方法を理解できませんか?多分何か助けはありますか?

protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Ignore<m_box>();
    }
protected override void Seed(eBagasiContext context)
    {
        context.Database.ExecuteSqlCommand(m_boxView.GetInitView(),new object[]{});
     }
public static class m_boxView
{
    public static string GetInitView()
    {
        return "CREATE VIEW m_box " +
            "AS " +
            "SELECT AgencyRef.Code AS ModuleCode, " +                
            "Price.Scale, "+
            "Price.Amount "+
            "FROM Price " +
            "LEFT JOIN AgencyRef " +
            "ON (Price.Code = AgencyRef.Code) " +
            "WHERE LEFT(Price.Code,1)='C'";
    }
}
4

1 に答える 1

0

ビューをエンティティにマップする場合は、いくつかの手順に従う必要があります。

  • 最初にそれをテーブルとしてマップし(無視しないでくださいm_box)、EFにm_boxテーブルを作成させます。
  • Seedメソッドでは、作成したテーブルを削除し、同じ名前でビューを作成する必要があります。
于 2012-07-10T08:59:12.230 に答える