Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在模型中存储函数_C#_Asp.net Mvc_Entity Framework_Function_Model - Fatal编程技术网

C# 在模型中存储函数

C# 在模型中存储函数,c#,asp.net-mvc,entity-framework,function,model,C#,Asp.net Mvc,Entity Framework,Function,Model,让我们假设我有一个类Offer,它是: public class Offer { [Key] public int ID { get; set; } //... public virtual List<OfferEventManager> EventManagers { get; set; } public virtual List<EventDay> EventDays { get; set; } public virtu

让我们假设我有一个类
Offer
,它是:

public class Offer
{
    [Key]
    public int ID { get; set; }
    //...
    public virtual List<OfferEventManager> EventManagers { get; set; }
    public virtual List<EventDay> EventDays { get; set; }
    public virtual List<OfferStatus> OfferStatuses { get; set; }
    public virtual List<EstimatedCost> EstimatedCosts { get; set; }
    public virtual List<Payment> Payments { get; set; }
}
公开课优惠
{
[关键]
公共int ID{get;set;}
//...
公共虚拟列表事件管理器{get;set;}
公共虚拟列表事件日{get;set;}
公共虚拟列表提供状态{get;set;}
公共虚拟列表EstimatedCosts{get;set;}
公共虚拟列表付款{get;set;}
}

我必须做一些检查,例如,有人想向客户发送
报价
,但首先
报价
必须在指定的
报价状态
、一些示例
事件日
和示例
估计成本
。现在让我们假设我不仅要在一个函数中检查它,还要在一些函数中检查它,因此我需要知道最新的
OfferStatus
等。我是否应该在模型中存储一个函数,例如
GetLatestStatus()
,而其他一些函数或模型应该只具有存储在DB中的属性?如果我不能将函数存储在内存中,那么编写一些有用函数的最佳方法是什么,我可以使用从DB call获得的
Offer

通常,EF中的模型应该是数据库的直接模型(可能有一些虚拟映射)

我不完全确定你的问题是什么(或者你想要什么),但是如果你想要的只是最近的状态,你可以这样做:

// assume that 'offer' is an Offer from the DB 
var latestStatus = offer.OfferStatuses.OrderByDescending(x => x.Timestamp).First();
您可以在模型上添加“getter”,如下所示:

public class Offer
{
    // Getter method
    public OfferStatus GetLatestStatus
    {
        get { return OfferStatuses.OrderByDescending(x => x.Timestamp).FirstOrDefault(); }
        set { ; }
    }  
}

通常,EF中的模型应该是数据库的直接模型(可能带有一些虚拟映射)

我不完全确定你的问题是什么(或者你想要什么),但是如果你想要的只是最近的状态,你可以这样做:

// assume that 'offer' is an Offer from the DB 
var latestStatus = offer.OfferStatuses.OrderByDescending(x => x.Timestamp).First();
您可以在模型上添加“getter”,如下所示:

public class Offer
{
    // Getter method
    public OfferStatus GetLatestStatus
    {
        get { return OfferStatuses.OrderByDescending(x => x.Timestamp).FirstOrDefault(); }
        set { ; }
    }  
}

您可以通过分部类在模型类中添加方法
public分部类Offer

你可以在

写一些有用函数的最好方法是什么,我可以使用DB call提供的函数

您应该遵循存储库模式

更多参考资料请访问


您可以通过分部类在模型类中添加方法
公共分部类报价

你可以在

写一些有用函数的最好方法是什么,我可以使用DB call提供的函数

您应该遵循存储库模式

更多参考资料请访问


这就是我想存储在模型public offers status GetLatestStatus(){return offer.offers status.OrderByDescending(x=>x.Date).First();}中的内容,这就是我想存储在模型public offers status GetLatestStatus(){return offer.offers status.OrderByDescending(x=>x.Date).First();}中的内容