2012-12-18 56 views
1

我在MVC 3下編寫了一些用於Web服務的類,它們也在應用程序中用作實體。一切正常,但當框架將生成實體到數據庫中,所有SOAPHEADER屬性也被存儲爲表中的字段,即:實體框架:如何排除數據庫表中的Soap屬性

  • EncodedMustUnderstand
  • EncodedMustUnderstand12
  • 的mustUnderstand
  • 演員
  • ...

當然這是因爲基類MyEntity類System.Web.Services.Protocols.SoapHeader

我的問題是:我怎樣才能避免創建肥皂頭屬性到數據庫中而無需手動(如NotMapped屬性)?

這裏是我的代碼

// MyEntityClass.cs 
public class MyEntityClass : System.Web.Services.Protocols.SoapHeader 
{ 
    // Attributes... 
} 

// MyService.asmx.cs 
public class MyService : System.Web.Services.WebService 
{ 
    public MyEntityClass myClass; // Used as header from the client 

    [WebMethod] 
    [System.Web.Services.Protocols.SoapHeader("myClass")] 
    public string Hello() 
    { 
    } 
} 

謝謝你們!

回答

1

所以,我發佈我自己的解決方案,可能會對其他人有用。 我剛剛使用到我的實體(DbContect)類中,如下所示的OnModelCreating方法:

using System.Data.Entity; 
namespace Application.Models 
{ 
    public class Entities : DbContext 
    { 
     public DbSet<MyEntityClass> MyEntityClass { get; set; } 
    } 

    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     modelBuilder.Ignore<System.Web.Services.Protocols.SoapHeader>(); 
    } 
}