【问题标题】:Improvement of the NerdDinner application ASP.NET MVC 2NerdDinner 应用程序 ASP.NET MVC 2 的改进
【发布时间】:2011-12-23 10:56:03
【问题描述】:

我使用流行的 NerdDinner 教程创建了一个基于 ASP.NET MVC 2 的应用程序,该教程为人们提供了一种在线查找和组织晚餐的简便方法。我希望以某种方式通过添加一些功能来开发此服务。这是我第一次真正接触编程。我会要求任何提示或建议。我没有经验,所以请多多包涵:) 提前致谢。

1.在 NerdDinner 应用程序中,我们在模型类 DinnerRepository 中有如下查询方法:

public class DinnerRepository
{
    private NerdDinnerEntities entities = new NerdDinnerEntities();
    //
    // Query Methods
    public IQueryable<Dinner> FindAllDinners()
    {
        return entities.Dinners;
    }
    public IQueryable<Dinner> FindUpcomingDinners()
    {
        return from dinner in entities.Dinners
               where dinner.EventDate > DateTime.Now
               orderby dinner.EventDate
               select dinner;
    }
}

是否可以返回表中给定行的值(在上面的代码中,我们得到了整个排序的表)。例如这样的:

return from dinner in entities.Dinners
    WHERE dinner.EventDate like '% 2011-11-28 12:00:01%'
    orderby dinner.EventDate
    select dinner;

dinner.Category = ‘something’

我尝试这样做,但没有成功。为不同类别的晚餐创建一个下拉列表(创建和编辑方法)对我很有帮助。

2.添加语言面板。在顶部,我们可以更改整个网站的语言。

3.向已确认参加会议的人员发送确认电子邮件。 邮件(PDF?)将根据存储在数据库中的有关会议和参加会议的人员的值生成。 (也许是数据库触发器?)。


更新:
谢谢您的答复。很有帮助。

关于第 3 个问题,我不知道该怎么做。我将非常感谢任何教程、解决方案示例等。我更改了 NerdDinner 项目以供自己在支持 bar 的 web 服务中使用。

简而言之,案例是这样的:

我有两张表:一张包含有关特定菜肴的信息,第二张包含菜肴的 ID 和订购人的姓名(登录服务的人的用户名)。这些表通过外键链接。订购由页面上的 ActionLink 完成。点击后,订单表随即更新。

在此基础上,我想向订购这道菜的人发送一封电子邮件,其中包含有关这道菜的信息。为什么数据库触发器是一个糟糕的解决方案?

目前我只实现了注册的电子邮件确认,但我认为它不会有用。创造这样的东西很难吗?我问是因为我对 ASP.NET 不是特别熟悉。

【问题讨论】:

    标签: c# asp.net-mvc-2


    【解决方案1】:

    由于该方法返回一个 IQueryable,您可以在代码中使用 LINQ 来限制返回的行。鉴于您有一个实例 DinnerRepo,您​​可以编写如下内容:

    dinnerRepo.FindAllDinners().Where(d => d.Category = ‘something’);

    查询将在您使用此结果时执行,而不是在您调用 FindAllDinners 时执行。有关 LINQ 的更多信息,请访问 herehere

    2 应该有很多教程可以给你解释如何做到这一点。

    3 我不会发送由数据库触发器触发的确认电子邮件。您可以编写一个后台作业,每晚检查您的数据并发送邮件,或者如果这在您完成将确认存储在数据库中后立即发送电子邮件的运行之间的时间很长。

    【讨论】:

    • 感谢您的回复。这很有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多