第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

僅支持初始值設(shè)定項,實(shí)體成員和實(shí)體導(dǎo)航屬性

僅支持初始值設(shè)定項,實(shí)體成員和實(shí)體導(dǎo)航屬性

僅支持初始值設(shè)定項,實(shí)體成員和實(shí)體導(dǎo)航屬性我得到了這個例外:LINQ to Entities不支持指定的類型成員'付費(fèi)'。僅支持初始值設(shè)定項,實(shí)體成員和實(shí)體導(dǎo)航屬性。    public ActionResult Index()     {         var debts = storeDB.Orders             .Where(o => o.Paid == false)             .OrderByDescending(o => o.DateCreated);         return View(debts);     }我的Model類public partial class Order{     public bool Paid {         get {             return TotalPaid >= Total;         }     }     public decimal TotalPaid {         get {             return Payments.Sum(p => p.Amount);         }     }付款是一個包含字段數(shù)量的相關(guān)表格,如果我刪除Where子句顯示有關(guān)付款的正確信息,查詢有效,任何線索有什么問題?解決了如下建議的答案:    public ActionResult Index()     {         var debts = storeDB.Orders             .OrderByDescending(o => o.DateCreated)             .ToList()             .Where(o => o.Paid == false);         return View(debts);     }
查看完整描述

3 回答

?
紫衣仙女

TA貢獻(xiàn)1839條經(jīng)驗 獲得超15個贊

實(shí)體正在嘗試將您的Paid屬性轉(zhuǎn)換為SQL,但不能,因為它不是表模式的一部分。

你可以做的是讓實(shí)體查詢表沒有付費(fèi)過濾器,然后過濾掉非付費(fèi)過濾器。

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);}

當(dāng)然,這意味著您將所有數(shù)據(jù)帶回Web服務(wù)器并過濾其上的數(shù)據(jù)。如果要在數(shù)據(jù)庫服務(wù)器上進(jìn)行篩選,可以在表上創(chuàng)建計算列或使用存儲過程。


查看完整回答
反對 回復(fù) 2019-08-27
?
BIG陽

TA貢獻(xiàn)1859條經(jīng)驗 獲得超6個贊

只是不得不解決類似的問題。上述解決方案需要內(nèi)存處理,這是一種不好的做法(延遲加載)。

我的解決方案是編寫一個返回謂詞的幫助器:

public static class Extensions{
    public static Expression<Func<Order, bool>> IsPaid()
    {
        return order => order.Payments.Sum(p => p.Amount) >= order.Total;
    }}

您可以將linq語句重寫為:

var debts = storeDB.Orders
                    .Where(Extensions.IsPaid())
                    .OrderByDescending(o => o.DateCreated);

當(dāng)您想重用計算邏輯(DRY)時,這很方便。缺點(diǎn)是邏輯不在您的域模型中。


查看完整回答
反對 回復(fù) 2019-08-27
?
qq_笑_17

TA貢獻(xiàn)1818條經(jīng)驗 獲得超7個贊

Linq將語句轉(zhuǎn)換為SQL語句并將其執(zhí)行到數(shù)據(jù)庫中。

現(xiàn)在,此轉(zhuǎn)換僅適用于實(shí)體成員,初始值設(shè)定項和實(shí)體導(dǎo)航屬性。因此,要實(shí)現(xiàn)函數(shù)或獲取屬性比較,我們需要先將它們轉(zhuǎn)換為內(nèi)存列表,然后應(yīng)用函數(shù)來檢索數(shù)據(jù)。

因此,總的來說,

var debts = storeDB.Orders.toList()
        .Where(o => o.Paid == false)
        .OrderByDescending(o => o.DateCreated);


查看完整回答
反對 回復(fù) 2019-08-27
  • 3 回答
  • 0 關(guān)注
  • 880 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號