1

私は MVC 3 の下で、Web サービスに使用されるいくつかのクラスを作成しており、それらはアプリでもエンティティとして使用されています。すべて問題ありませんが、フレームワークがデータベースにエンティティを生成するときに、すべての SoapHeader 属性もテーブル フィールドとして格納されます。

  • エンコードされた理解する必要があります
  • エンコードされたMustUnderstand12
  • 理解しなければならない
  • 俳優
  • ...

もちろん、これはMyEntityClassの基本クラスがSystem.Web.Services.Protocols.SoapHeaderであるため発生します。

私の質問は次のとおりです:どうすれば手動で行わずに(NotMapped属性のように)データベースへのsoapヘッダー属性の作成を回避できますか?

これが私のコードです

// 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()
    {
    }
}

みんなありがとう!

4

1 に答える 1

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>();
    }
}
于 2012-12-18T09:26:03.340 に答える