したがって、私は非常に正規化されたモデルを持っており、エンティティ フレームワーク オブジェクトを使用する MVC4 で単一ページ アプリケーションを作成しようとしています。私の問題は、必要な種類の複雑なマッピングを使用して EF でエンティティを作成できないことです (複数のガイドを確認しましたが、異なる主キーを含む複数のテーブルから 1 つのエンティティを作成できないようです..更新可能なビューを使用する解決策を見つけましたが、それは実際には抽象化を db レイヤーにプッシュしているだけです)。
したがって、EFクエリを使用してオブジェクトを作成し、挿入/更新/削除時にPOCOデータを取得して、基になる3つのテーブルを更新できるPOCOオブジェクトを作成できると考えました。
さて、何が起こっているのかを知るために、既存の動作中のコントローラーを微調整しようとして障害にぶつかりました。
次のような SPA コントローラーが動作しているとします。
public partial class FooController : DbDataController<aspnetEntities>
{
public IQueryable<Foos> GetFoos() { ... }
}
少し変更して、新しい POCO データ オブジェクト Bar を返します。ここでは、Foo とまったく同じフィールドがあるとします。
public partial class FooController : DbDataController<aspnetEntities>
{
public IQueryable<Bars> GetBars() { ... }
}
FooViewModel.js で、操作名を GetBars に更新し、型を
var entityType = "Foo:#Models";
に
var entityType = "Bar:#Models";
操作を直接ヒットすると、次のようになります。
年
<ArrayOfFoo><Foo><Property>true</Property></Foo></ArrayOfFoo>
新着
<ArrayOfBar><Bar><Property>true</Property></Bar></ArrayOfBar>
したがって、コントローラーは期待どおりに機能しているように見えますが、すべてをまとめようとすると、SPA が点滅します。
ローカル名 '__type' で属性を書き込んだ後、属性 'type'='object' を記述する必要があります。
どういうわけかタイプデータをKOに入れる必要があると思いますか? それがどこにあるのかはわかりませんが、何時間も JS をクロールしてきましたが、どこで失敗しているのかさえ明確ではありません。任意の入力をいただければ幸いです。