[解決済み] イニシャライザー、エンティティメンバー、エンティティナビゲーションプロパティのみ対応
2022-11-17 19:39:12
質問
この例外が発生しました。
指定されたタイプ・メンバ 'Paid' は LINQ to Entities ではサポートされていません。 初期化子、エンティティ・メンバ、およびエンティティ・ナビゲーション・プロパティのみサポートされています。 のみがサポートされています。
public ActionResult Index()
{
var debts = storeDB.Orders
.Where(o => o.Paid == false)
.OrderByDescending(o => o.DateCreated);
return View(debts);
}
私のモデルクラス
public partial class Order
{
public bool Paid {
get {
return TotalPaid >= Total;
}
}
public decimal TotalPaid {
get {
return Payments.Sum(p => p.Amount);
}
}
Paymentsは金額フィールドを含む関連テーブルです。Where句を削除するとクエリは動作し、支払いに関する正しい情報を表示します。
回答が示唆するように解決されました。
public ActionResult Index()
{
var debts = storeDB.Orders
.OrderByDescending(o => o.DateCreated)
.ToList()
.Where(o => o.Paid == false);
return View(debts);
}
どのように解決するのですか?
エンティティがPaidプロパティをSQLに変換しようとしていますが、テーブルスキーマの一部ではないため、変換することができません。
できることは、Entity に Paid フィルタなしでテーブルにクエリを実行させ、Paid でないものをフィルタリングすることです。
public ActionResult Index()
{
var debts = storeDB.Orders
//.Where(o => o.Paid == false)
.OrderByDescending(o => o.DateCreated);
debts = debts.Where(o => o.Paid == false);
return View(debts);
}
それはもちろん、すべてのデータをWebサーバに持ち帰り、その上でフィルタリングを行うことになります。DBサーバー上でフィルタリングを行いたい場合は、テーブル上にCalculated Columnを作成するか、Stored Procedureを使用します。
関連
-
[解決済み] C# LINQ リスト内の重複を検索する
-
[解決済み] LINQで複数の "order by "を使用する
-
[解決済み] IEnumerable<T>のforeachのLINQでの等価性
-
[解決済み】Lambda式でOrderBy descending?
-
[解決済み】LINQ グループバイをディクショナリーオブジェクトに入れる
-
[解決済み] エンティティフレームワークのLinqクエリInclude()複数の子エンティティ
-
[解決済み] 指定された型メンバー 'Date' は LINQ to Entities でサポートされていません。イニシャライザ、エンティティ・メンバ、およびエンティティ・ナビゲーション・プロパティのみです。
-
[解決済み] LINQ OrderByとThenByの比較
-
[解決済み] NHibernateとLINQ to SQLの比較
-
[解決済み] Linq to SQL 「where [column] in (list of values)」はどうやるの?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] C# LINQ リスト内の重複を検索する
-
[解決済み] IEnumerable<T>のforeachのLINQでの等価性
-
[解決済み】Lambda式でOrderBy descending?
-
[解決済み】LINQ グループバイをディクショナリーオブジェクトに入れる
-
[解決済み】Entity Framework。このコマンドに関連するオープンなDataReaderがすでに存在します。
-
[解決済み] LINQ-to-SQLとストアドプロシージャの比較?[クローズド]
-
[解決済み] LINQを使用してデータをPivotすることは可能ですか?
-
[解決済み] IQueryableとIEnumerableの違いは何ですか[重複]。
-
[解決済み] LINQ: 区分された値
-
[解決済み] LINQ OrderByとThenByの比較