Web APIを使用してデータベースからデータを取得します。私は1つのテーブル "tblMessage"しか持っておらず、そのテーブルからデータを取得したい。常に「ObjectContent 1タイプでレスポンス本文のシリアル化に失敗しました...」
私はすべてを設定しましたが、ウェブサイトを実行しました。エラーは常に
は「ObjectContent`1」タイプは、コンテンツタイプに対するレスポンスボディをシリアル化することができなかった私は、エラーがで固定することができsayid stackoverflowの上でいくつかの記事を読んで
「アプリケーション/ xmlの言いますjson形式でデータを出力するようにブラウザに指示します。その後、エラーは私は次のポストからのすべてのソリューションを試してみました
「アプリケーション/ jsonの「ObjectContent`1」タイプは、コンテンツタイプに対するレスポンスボディをシリアル化に失敗した
になりますが、それら(ブラウザが同じエラーを報告します)
Web API Error: The 'ObjectContent`1' type failed to serialize the response body for content type
Failed to serialize the response body for content type
問題を修正していけませんWeb API Error: The 'ObjectContent`1' type failed to serialize the response body for content type
正確にはこのエラーは何ですか?
public interface IMessage { IQueryable<Message> GetAll(); } public class Message { [Key] public int i_StmID { get; set; } public string vch_MsgString { get; set; } } public class EFDBContext : DbContext { public DbSet<Message> Message { get; set; } protected override void OnModelCreating(DbModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); modelBuilder.Entity<Message>().ToTable("tblMessage"); } } public class MessageRepository : IMessage { private EFDBContext context = new EFDBContext(); public IQueryable<Message> GetAll() { return context.tblMessage; } } public class MessageController : ApiController { public IMessage repo = new MessageRepository(); public IEnumerable<Message> GetAllMsg() { return repo.GetAll(); } }
ありがとうございます。私はこの問題についての記事を読んで同じことを追加しましたが、ブラウザは同じエラーを報告します。私はエラーがコードから生成すると思う。 – kaboom
@kaboom更新された回答を試してください –
もう一度ありがとう。残念ながら、私のコードはb/cをコンパイルしませんcontext.tblMessageはリストではなくDbSetを返します。私は "return context.tblMessage.ToList()"を試みたが失敗した。 – kaboom